2016-07-07 94 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); 
相關問題