java - 如何从 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
它打开它时说:“看起来我们不支持这种文件格式”
此外,原始文件大小小于使用上述代码创建的新文件大小。
我在这里做错了什么?
解决方案
png 图像不是人类可读的文本,如果您尝试将其表示为字符串并使用 FileWriter,它会损坏。
相反,您应该将 blob 的内容作为字节数组或 InputStream 获取,并使用 FileOutputStream 将其写入文件。
推荐阅读
- assembly - 如何为 q35 机器制作简单的引导程序
- .net - 工作负载修复失败:`dotnet 工作负载修复 - MAUI
- javascript - dming 用户不再工作,discord.js
- haskell - 我如何证明如果 sum list = 10,那么 sum list == sum (reverse list)?
- javascript - Firebase 创建记录不适用于 PROD
- wordpress-gutenberg - 如何防止内容覆盖背景图片?
- java - JavaFX 控制器在实例化时为空
- java - 如何在单独的方法中使用主 java 文件中的字符串?
- c# - 在 NET5 asp.net core webapp 上为 Kestrel 启用 Windows 身份验证
- string - 查找特殊字符串的所有排列(递归)