2016-07-07 12 views
1

.createTempFileというJavaで、画像を生成してFileを返すメソッドに使用したメソッドがあります。これはコードの一部です:一時的な.jpgファイルをコンピュータに保存する

File jpgFile = File.createTempFile("tmp, ".jpg"); 
//fill the file with information ... 
return jpgFile; 

私が私のメインメソッドでメソッドにアクセスすると、私はFileを取得します。今、私の疑問です。どうすればこのファイルを保存できますか?私がこれをやろうとするとき:

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); 
関連する問題