2017-09-28 9 views
1

私はそのようなbase64でフィールドをストリームから別のストリームにJSONを記述しようとしています:なぜジャクソンはストリームから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'を' close 'したいかもしれません。 –

+1

近すぎる - 解決策です:) – Cherry

答えて

1

generator.close()コールを追加する必要があり、これによってストリームがフラッシュされます。

関連する問題