출력 스트림을 닫지 않고 자바 잭슨 MessagePack (출력 스트림) 변수의 시퀀스

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 
공공 무효 testMessagePackSerializationNotCloseOutputStream () { 
    logger.debug ( "testMessagePackSerializationNotCloseOutputStream"); 

    시도 { 
        임시 파일 = File.createTempFile 파일 ( "messagepack-", "-cwiki.us"); 

        = FileOutputStream에 새로운 (임시 파일)를 아웃의 OutputStream; 
        ObjectMapper objectMapper = 새로운 ObjectMapper (새 MessagePackFactory ()); 
        objectMapper.configure (JsonGenerator.Feature.AUTO_CLOSE_TARGET 거짓); 

        objectMapper.writeValue (밖으로, 1); 
        objectMapper.writeValue (교체 아웃 "이"); 
        objectMapper.writeValue (아웃, 3.14); 
        out.close ();

        MessageUnpacker 해석기 = MessagePack.newDefaultUnpacker (새 FileInputStream의 (임시 파일)); 
        에서 System.out.println (unpacker.unpackInt ()); // => 1 
        에서 System.out.println (unpacker.unpackString ()); // => 두 
        에서 System.out.println (unpacker.unpackFloat ()); // => 3.14 

        tempFile.deleteOnExit (); 
    } 캐치 (IOException이 예) { 
        logger.error ( "오류를 직렬화", 예); 
    } 
}

 

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

추천

출처www.cnblogs.com/huyuchengus/p/11330359.html