从DB2表中,我有一个Blob,我正在将其转换为字节数组,以便可以使用它。我需要采取字节数组并创建PDF它。
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()); } }
但是PDF它创建的是不正确的,它上面有一束黑线。
实际上,PDF通过使用基本上相同的过程编写Web应用程序,我能够创建正确的代码。Web应用程序和有关代码的主要区别在于以下这一行:
response.setContentType("application/pdf");
所以我知道字节数组是一个PDF并且可以完成,但是我的代码byteArrayToFile不会创建clean PDF。
byteArrayToFile
关于如何使它起作用的任何想法?
通过a发送输出FileWriter会损坏它,因为数据是字节,而FileWriters是用于写入字符。所有你需要的是:
FileWriter
OutputStream out = new FileOutputStream("out.pdf"); out.write(bArray); out.close();