加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

MessagePack Java Jackson 在不关闭输出流(output stream)的情

发布时间:2020-12-15 05:24:27 所属栏目:Java 来源:网络整理
导读:com.fasterxml.jackson.databind.ObjectMapper ?在默认的情况下在写出输入后将会关闭输出流(output stream)。 如果你希望序列化多值变量在同一个输出流的情况下,你不希望在输出完一个就关闭输出流,你可以设置?? JsonGenerator.Feature.AUTO_CLOSE_TARGET

com.fasterxml.jackson.databind.ObjectMapper?在默认的情况下在写出输入后将会关闭输出流(output stream)。

如果你希望序列化多值变量在同一个输出流的情况下,你不希望在输出完一个就关闭输出流,你可以设置??JsonGenerator.Feature.AUTO_CLOSE_TARGET?参数为 False

本测试方法,可以在?https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java?中找到。

?

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

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

        OutputStream out = new FileOutputStream(tempFile);
        ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
        objectMapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET,false);

        objectMapper.writeValue(out,1);
        objectMapper.writeValue(out,"two");
        objectMapper.writeValue(out,3.14);
        out.close();

        MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(new FileInputStream(tempFile));
        System.out.println(unpacker.unpackInt());      // => 1
        System.out.println(unpacker.unpackString());   // => two
        System.out.println(unpacker.unpackFloat());    // => 3.14

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

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读