Java 为什么Jackson没有从流中完成json创建?

Java 为什么Jackson没有从流中完成json创建?,java,json,io,jackson,Java,Json,Io,Jackson,我正在尝试将json从流写入另一个具有base64字段的流,如下所示: 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[] ar

我正在尝试将json从流写入另一个具有base64字段的流,如下所示:

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

但我得到了:

{"data":"JVBERi0xLjMKJcfsj6IKMzAgMCBvYmoKPD
  • 尽管调用了
    生成器,但末尾没有
    。writeEndObject()
  • base64末尾没有
    =
    =
  • 对象末尾没有
    }

为什么会发生这种情况?如何解决此问题???

需要添加导致刷新流的
生成器.close()
调用。

请提供一个。您可能需要
关闭
JsonGenerator
。是的,关闭-是解决方案:)