Я пытаюсь прочитать в потоке и сохранить прочитанные изображения в zip-файле, так как это будет работать в течение нескольких дней и будет генерировать слишком много отдельных файлов.Как сохранить изображения в zip-файл
У меня теперь есть проблема, когда я, похоже, не могу сохранить изображения в zip-файле. Рабочий поток, который я построил для него, ниже. Я уверен, что изображение превращается в ImageIO.write. Результатом в конце, однако, является zip-файл с пустыми jpg. Мне интересно, может ли ImageIO не записывать свойство в ZipOutputStream.
Благодарим за помощь.
public class ZipSaveWorker implements Runnable{
public static ZipOutputStream out=null;
BufferedImage myImage;
private static int counter=0;
public void run() {
ZipEntry entry=new ZipEntry("video"+counter+".jpg");
counter++;
try {
out.putNextEntry(entry);
ImageIO.write(myImage, ".jpg", out);
} catch (IOException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
}
public ZipSaveWorker(BufferedImage image)
{
if (out==null)
{
try {
out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(new File("images" + File.separator + "video.zip"))));
} catch (FileNotFoundException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
counter=0;
}
myImage=image;
}
public static void closeStream()
{
try {
out.flush();
out.close();
} catch (IOException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Я попробую и посмотрю, работает ли это сегодня вечером. Благодарю. – Mimyck