【发布时间】:2016-11-09 20:05:35
【问题描述】:
java 中有一个名为.createTempFile 的方法,我将其用于生成图片并返回文件的方法。这是代码的一部分:
File jpgFile = File.createTempFile("tmp, ".jpg");
//fill the file with information ...
return jpgFile;
当我访问主方法中的方法时,我得到一个文件。现在我的问题是:我怎样才能保存这个文件?我尝试这样做:
File f = generateJPG(); // (the method that is explained above)
File out = new File("C:/fileJPG.jpg");
FileInputStream fis = new FileInputStream(f);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
FileWriter fstream = new FileWriter(out, true);
BufferedWriter outw = new BufferedWriter(fstream);
String aLine = null;
while ((aLine = in.readLine()) != null) {
outw.write(aLine);
outw.newLine();
}
in.close();
outw.close();
但这不起作用,只会给我一个充满随机像素的非常混乱的图片。那么如何将这个临时文件保存到我的计算机上呢?
【问题讨论】:
-
使用
ImageIO和BufferedImage -
你能在任何时间点看到图像吗?您创建的图像数据很可能不正确并创建垃圾文件。
-
@RobertLongson 很好,第一个代码只是解释了如果有人忘记/不知道 TempFiles 是如何创建的。它应该解释我有一个方法可以将图像生成为 TempFile 并且我想在下一段代码中访问它(将其保存到我的计算机)
-
@PaulSwetz 我可以看到一张图片,它看起来很奇怪(绿色/白色/红色部分),我认为它的生成方式没有错误。我的程序是这样做的:生成一个 .svg 文件,将其转码为 .jpg 并返回。我已经通过生成 .svg 文件并使用转码器将 .jpg 直接写入我的桌面对其进行了测试。现在我只是将信息写入一个 TempFile,所以我不知道会出现什么问题。
-
@JordiCastilla 这很有效,非常感谢。 (我的答案中的代码)