2016-07-07 88 views
1

在java中有一种方法叫.createTempFile,我用它来生成一张图片并返回文件。这是代码的一部分:将临时.jpg文件保存到计算机

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(); 

但这不会工作,只是给了我一个非常混乱的图片填充随机像素。那么如何将这个临时文件保存到我的电脑?

+0

使用'ImageIO'和'BufferedImage' –

+0

你真的可以在任何时间点看到图像吗?它很可能是您创建的图像数据不正确并创建垃圾文件。 –

+0

@RobertLongson第一个代码只是解释了如果有人忘记/不知道TempFiles是如何创建的。它应该解释说,我有一个方法,生成一个TempFile的图像,我想在下一段代码中访问它(将它保存到我的电脑) – JetStream

回答

1

我找到了解决方案。我用ImageIOBufferedImage,就像@JordiCastilla说的那样,它工作正常。这里是代码:

File f = generateJPG(); 

BufferedImage image = ImageIO.read(f); 

File out = new File("C:/fileJPG.jpg"); 

ImageIO.write(image, "jpg", out); 
相关问题