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