MessagePackのJavaジャクソン出力ストリーム(出力ストリーム)多変量のシーケンスを閉じず

com.fasterxml.jackson.databind.ObjectMapper デフォルトの入力の場合、出力ストリーム(出力ストリーム)を書いた後にオフになります。

あなたが同じ出力ストリームは、あなたが完成し、出力ストリームの出力をしたくない場合は多値変数の順序が閉じているしたい場合は、設定できる   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  で見つけます。

 

/ ** 
 *シリアライズない閉じる出力ストリーム
 * / 
@Test 
ます。public void testMessagePackSerializationNotCloseOutputStream(){ 
    logger.debug( "testMessagePackSerializationNotCloseOutputStream"); 

    {試みる
        ファイルの一時ファイル= File.createTempFile( "messagepack-"、 "-cwiki.usを"); 

        うちのOutputStream =新しいのFileOutputStream(一時ファイル)。
        ObjectMapper objectMapper =新しいObjectMapper(新MessagePackFactory()); 
        objectMapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET、偽); 

        objectMapper.writeValue(OUT、1)。
        objectMapper.writeValue(うち、 "2")。
        objectMapper.writeValue(アウト、3.14); 
        out.close();

        MessageUnpackerアンパック= MessagePack.newDefaultUnpacker(新しいFileInputStreamを(一時ファイル)); 
        System.out.println(unpacker.unpackInt())。// => 1 
        のSystem.out.println(unpacker.unpackString())。// => 2 
        のSystem.out.println(unpacker.unpackFloat())。// => 3.14 

        tempFile.deleteOnExit()。
    }キャッチ(のIOExceptionのEX){ 
        logger.error( "エラーをシリアル"、EX)。
    } 
}

 

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

おすすめ

転載: www.cnblogs.com/huyuchengus/p/11330359.html