2017-09-28 23 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()调用。