首页 > 解决方案 > 如何从 BLOB 写入 PNG 图像文件?

问题描述

我得到了这段代码来创建文件并将其写入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它打开它时说:“看起来我们不支持这种文件格式”

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

我在这里做错了什么?

标签: javaimagefileblob

解决方案


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

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


推荐阅读