如何从BLOB写入PNG图像文件?

时间:2018-12-13 13:37:48

标签: java image file blob

我获得了这段代码,用于创建Oracle BLOB图像文件并将其写入PNG图像文件

try {
    final File file = new File("C:/Users/John.Doe/Desktop/PDF Templates/POC/output/" + pdfObject.getFileName());
    final FileWriter fileWriter = new FileWriter(file);

    fileWriter.write(pdfObject.getContent());  << a String of the PNG content, see below:
    fileWriter.flush();
    fileWriter.close();
} catch (final IOException e) {
    e.printStackTrace();
}

PNG文件内容:

�PNG

IHDR<binary code> .....

运行此代码后,图像创建得不好,这意味着,当我尝试使用Microsoft Photos打开图像时,它说:“看来我们不支持此文件格式“

此外,原始文件的大小小于使用上述代码创建的新文件的大小。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

png图像不是人类可读的文本,如果尝试将其表示为字符串并使用FileWriter,则会损坏该图像。

相反,您应该以字节数组或InputStream的形式获取Blob的内容,并使用FileOutputStream将其写入文件。