Bellekte birçok BufferedImages ürettim ve bunları bir e-posta eki olarak göndermeden önce bir zip dosyasına sıkıştırmak istiyorum. Dosyaları diskten okumadan bir zip dosyasına nasıl kaydederim.Java ile diske kaydetmeden zip dosyasını nasıl oluşturabilirim?
Bu dosyaları geçici dosya oluşturmadan sıkıştırabilmemin bir yolu var mı?
Oluşturmak binlerce dosya nedeniyle disk yazma zaman alır.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cccprog;
import java.awt.Component;
import java.awt.Panel;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
/**
*
* @author Z
*/
public class N {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 10; i++) {
JFrame jf = new JFrame();
Panel a = new Panel();
JRadioButton birdButton = new JRadioButton();
birdButton.setSize(100, 100);
birdButton.setSelected(true);
jf.add(birdButton);
getSaveSnapShot(birdButton, i + ".bmp");
}
}
public static BufferedImage getScreenShot(Component component) {
BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
// paints into image's Graphics
component.paint(image.getGraphics());
return image;
}
public static void getSaveSnapShot(Component component, String fileName) throws Exception {
BufferedImage img = getScreenShot(component);
// BufferedImage img = new BufferedImage(image.getWidth(),image.getHeight(),BufferedImage.TYPE_BYTE_BINARY);
// write the captured image as a bmp
ImageIO.write(img, "bmp", new File(fileName));
}
}
java.utli.zip dosyasına bakın. –
Sadece merakım için, neden geçici dosya oluşturmaktan kaçınmak istiyorsunuz? –
Bu, http://stackoverflow.com/questions/7108035/how-to-flush-the-zipoutputstream-periodically-in-java – Ted