MessagePack Java Jackson without closing the input stream (input stream) deserialization multivariate

com.fasterxml.jackson.databind.ObjectMapper When reading the input stream variable default input stream will be closed.

If you do not want to close the input stream, you can set the  JsonParser.Feature.AUTO_CLOSE_SOURCE parameter to false.

This test method may  https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java  in turn up.

 

/**
 * Serialization Not Close input stream
 */
@Test
public void testMessagePackSerializationNotCloseInputStream() {
    logger.debug("testMessagePackSerializationNotCloseInputStream");

    try {
        File tempFile = File.createTempFile("messagepack-", "-cwiki.us");

        MessagePacker packer = MessagePack.newDefaultPacker(new FileOutputStream(tempFile));
        packer.packInt(42);
        packer.packString("Hello");
        packer.close();

        FileInputStream in = new FileInputStream(tempFile);
        ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
        objectMapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false);
        System.out.println(objectMapper.readValue(in, Integer.class));
        System.out.println(objectMapper.readValue(in, String.class));
        in.close();

        tempFile.deleteOnExit();
    } catch (IOException ex) {
        logger.error("Serialize Error", ex);
    }
}

 

https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

Guess you like

Origin www.cnblogs.com/huyuchengus/p/11330362.html