26 Temmuz 2016 Salı

Inflater Sınıfı - Veriyi Açar

Giriş
Şu satırı dahil ederiz.
import java.util.zip.Inflater;
Sıkıştırılmış veriyi açmak için kullanılır. Sıkıştırmak için Deflater Sınıfı kullanılır.

Kullanım
Açma (decompress) için şöyle yaparız
public static byte[] decompressImage(byte[] data) {
  Inflater inflater = new Inflater();
  inflater.setInput(data);
  ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
  byte[] tmp = new byte[4*1024];
  try {
    while (!inflater.finished()) {
      int count = inflater.inflate(tmp);
      outputStream.write(tmp, 0, count);
    }
    outputStream.close();
  } catch (Exception exception) {
  }
  return outputStream.toByteArray();
}
Örnek
Şöyle yaparız
public static byte[] decompress(byte[] compressedData) {
  if (compressedData.length == 0) {
    return compressedData;
  }
  Inflater inflater = new Inflater();
  inflater.setInput(compressedData);
  ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length);
  byte[] buf = new byte[1024];
  while (!inflater.finished()) {
    try {
      int count = inflater.inflate(buf);
      bos.write(buf, 0, count);
    } catch (DataFormatException e) {
      LOGGER.finest("Decompression failed", e);
    }
  }
  inflater.end();
  return bos.toByteArray();
}
constructor
Şöyle yaparız
Inflater inflater = new Inflater();
inflate metodu
Şöyle yaparız
//Buffer of uncompressed databyte[] outBuf = ...;
try {
  inflater.inflate(outBuf);
} catch(DataFormatException dfe) {
...
}
reset metodu
Şöyle yaparız
// Reset the inflator so we can re-use it
inflater.reset();
setInput metodu
Şöyle yaparız
//Buffer of compressed data read from the stream
byte[] inBuf = ...;

//Length of data in the input data
int inLength = ...;

inflater.setInput(inBuf, 0, inLength);


Hiç yorum yok:

Yorum Gönder