使用Java,将图像保存到文件的最佳方式是什么?

使用Java,将图像保存到文件的最佳方式是什么?,java,serialization,bufferedimage,Java,Serialization,Bufferedimage,我有一个学校的工作,我需要保存一个任意的图像到磁盘连同其他数据,在一个单一的文件 我们考虑将其与数据一起序列化;但是,即使是buffereImages,图像也无法序列化 使用Java在单个文件中保存图像和其他数据的最简单方法是什么?老实说,我真的不在乎文件大小。不过,如果它是压缩的,我想这是一个加号 ImageIO.write(img, "BMP", new File("filename.bmp")); 其中img是您的缓冲图像 之后,您可以使用FileOutputStream打开文件,并在后

我有一个学校的工作,我需要保存一个任意的图像到磁盘连同其他数据,在一个单一的文件

我们考虑将其与数据一起序列化;但是,即使是
buffereImage
s,图像也无法序列化

使用Java在单个文件中保存图像和其他数据的最简单方法是什么?老实说,我真的不在乎文件大小。不过,如果它是压缩的,我想这是一个加号

ImageIO.write(img, "BMP", new File("filename.bmp"));
其中img是您的
缓冲图像

之后,您可以使用
FileOutputStream
打开文件,并在后面或后面写入一些数据。 在阅读时,你只需要剪切附加的数据,并将其余的作为你的图像处理

其中img是您的
缓冲图像

之后,您可以使用
FileOutputStream
打开文件,并在后面或后面写入一些数据。 阅读时,您只需剪切附加的数据,并将其余数据视为您的图像。

如果您想要“可读”的解决方案,如存储在文本文件中,您可以将图像编码为base64字符串,并将其存储在您的文件中。有一个用于Java的示例,例如来自

如果您得到了如其他答案所示的
字节[]
,您可以通过执行

String imageString = new Base64().encodeBase64String(imageBytes);
并使用

byte[] imageBytes = new Base64().decodeBase64(imageString);
如果您想要一个“可读”的解决方案,比如存储在文本文件中,您可以将图像编码为base64字符串,并将其存储在您的文件中。有一个用于Java的示例,例如来自

如果您得到了如其他答案所示的
字节[]
,您可以通过执行

String imageString = new Base64().encodeBase64String(imageBytes);
并使用

byte[] imageBytes = new Base64().decodeBase64(imageString);

我怎样才能将任意数据附加到这个文件中,并且仍然能够相对轻松地读取它呢?OP写道:“老实说,我并不真正关心文件的大小。不过,如果它是压缩的,我想这是一个加号。”。BMP?真正地做那个。png:)@Webinator是的,不过我自己猜到了。(我把这个链接发给了我的同事,一旦他做对了,我会接受的,希望今天晚些时候可以接受。)它运行良好,尽管我使用了流变体。抱歉耽搁了。我怎样才能在这个文件中添加任意数据,并且仍然可以相对轻松地读取它呢?OP写道:“老实说,我并不在乎文件大小。不过,如果它是压缩的,我想这是一个加号。”。BMP?真正地做那个。png:)@Webinator是的,不过我自己猜到了。(我把这个链接发给了我的同事,一旦他做对了,我会接受的,希望今天晚些时候可以接受。)它运行良好,尽管我使用了流变体。抱歉耽搁了。