从DB2表我有blob,我正在转换为字节数组,所以我可以使用它.我需要获取字节数组并创建一个PDF.
这就是我所拥有的:
static void byteArrayToFile(byte[] bArray) {
try {
// Create file
FileWriter fstream = new FileWriter("out.pdf");
BufferedWriter out = new BufferedWriter(fstream);
for (Byte b: bArray) {
out.write(b);
}
out.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
但PDF它产生的不正确,它有一堆从上到下的黑线.
我实际上能够PDF通过使用基本相同的过程编写Web应用程序来创建正确的.Web应用程序和代码之间的主要区别是这一行:
response.setContentType("application/pdf");
Run Code Online (Sandbox Code Playgroud)
所以我知道字节数组是一个PDF,它可以完成,但我的代码byteArrayToFile将不会创建一个干净的PDF.
有关如何使其工作的任何想法?
Jas*_*rff 44
通过a发送输出FileWriter会破坏它,因为数据是字节,而FileWriters是用于写入字符.所有你需要的是:
OutputStream out = new FileOutputStream("out.pdf");
out.write(bArray);
out.close();
Run Code Online (Sandbox Code Playgroud)
可以利用 java 7 中引入的自动关闭接口。
try (OutputStream out = new FileOutputStream("out.pdf")) {
out.write(bArray);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71591 次 |
| 最近记录: |