2017-09-28 40 views
1

我想寫從流JSON用的base64領域的又一流這樣的:爲什麼傑克遜不能完成流的JSON創建?

import com.fasterxml.jackson.core.JsonFactory; 
import com.fasterxml.jackson.core.JsonGenerator; 

import java.io.File; 
import java.io.FileInputStream; 

public class Exmaple { 
    public static void main (String[] args) throws Exception { 

     final JsonGenerator generator = new JsonFactory().createGenerator(System.out); 
     generator.writeStartObject(); 
     generator.writeFieldName("data"); 
     generator.writeBinary(new FileInputStream(new File("D:\\somePath\\pdf.pdf")), -1); 
     generator.writeEndObject(); 
    } 
} 

相反pdf.pdf,你可以使用任何文件。

但在outut我:

{"data":"JVBERi0xLjMKJcfsj6IKMzAgMCBvYmoKPD 
  • 沒有"在結尾,儘管​​3210叫
  • 沒有===在BASE64
  • 結束
  • 沒有}在對象的末尾

爲什麼它發生了嗎?如何解決這個問題?

+0

請提供[mcve]。 –

+3

你可能想關閉'JsonGenerator'。 –

+1

是的關閉 - 是解決方案:) – Cherry

回答

1

需要添加導致沖洗流的generator.close()調用。