2016-07-07 5 views
1

В java называется метод .createTempFile, который я использовал для метода, который генерирует изображение и возвращает файл. Это часть кода:Сохраните временный файл .jpg на компьютер

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

Когда я обращаюсь к методу в своем основном методе, я получаю файл. Теперь мой quesiton is_ как я могу сохранить этот файл? Когда я пытаюсь это сделать:

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

Я нашел решение. Я использовал ImageIO и BufferedImage, так же, как @JordiCastilla сказал, и он отлично работал. Вот код:

File f = generateJPG(); 

BufferedImage image = ImageIO.read(f); 

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

ImageIO.write(image, "jpg", out); 
Смежные вопросы