Giriş
Şu satırı dahil ederiz
import java.util.zip.DeflaterOutputStream;
constructor
Örnek - Yanlış Kullanım
Şöyle yapmak doğru değil. Çünkü Deflator sınıfı kapatılmıyor.
outputStream = new DeflaterOutputStream(outputStream, new Deflater(), BLOCK_SIZE);
Çözüm şunlardan birisini kullanmak. Burada deflator elle kapatılıyor
outputStream = new DeflaterOutputStream(outputStream, new Deflater(), BLOCK_SIZE) { @Override public void close() throws IOException { try { super.close(); } finally { def.end(); } } };
veya şöyle yapmak. Burada usesDefaultDeflater değişkeni true yapılıyor. Böylece GZIPOutputStream kendisine dışarıdan verilen nesnesi kapatıyor.
public GZIPOutputStream(OutputStream out, int size, boolean syncFlush) throws IOException { super(out, new Deflater(Deflater.DEFAULT_COMPRESSION, true), size, syncFlush); usesDefaultDeflater = true; ... }
Hiç yorum yok:
Yorum Gönder