Работа с архивами GZIP
Обзор
Aspose.zip для Java API позволяет работать с созданием и управлением архивами GZIP в ваших приложениях без необходимости каких -либо других сторонних приложений. Aspose.zip API предоставляет gziparchive класс для работы с архивами Gzip. Этот класс предоставляет различные методы для выполнения операций в архивах.
Алгоритм сжатия GZIP основан на алгоритме дефляции, который представляет собой комбинацию кодирования LZ77 и Huffman.
Сжатие файла
В следующем примере кода показано, как сжать файл с помощью gziparchive экземпляры.
1Попробуйте (gziparchive archive = new gziparchive ()) {
2 archive.setsource (datadir + "data.bin");
3 archive.save (datadir + "archive.gz");
4}
Открыть архив Gzip
В следующем примере кода показано, как открыть архив GZIP.
1try (gziparchive archive = new gziparchive (datadir + "archive.gz")) {
2 try (fileOutputStream Extracted = new FileOutputStream (datadir + "data.bin")) {
3 InputStream unpacked = archive.open ();
4 байт [] b = новый байт [8192];
5 int bytesread;
6 while (0 <(bytesread = unpacked.read (b, 0, b.length))) {
7 Извлечен.
8 }
9 }
10} catch (ioException ex) {
11 System.out.println (Ex);
12}
Извлечение в выходной поток
В следующем примере кода показано, как открыть архив из потока и извлечь его в BytearrayOutputStream.
1BytearRayOutputStream outpertStream = new BytearRayOutputStream ();
2Try (gziparchive archive = new gziparchive (new FileInputStream (datadir + "sample.gz"))) {
3 байт [] b = новый байт [8192];
4 int bytesread;
5 Inputstream archivestream = archive.open ();
6 while (0 <(bytesread = archivestream.read (b, 0, b.length))) {
7 outputStream.Write (b, 0, BytesRead);
8 }
9 System.out.println (archive.getName ());
10} catch (ioException ex) {
11 System.out.println (Ex);
12}
Сохранить в выходной поток
В следующем примере кода показано, как открыть и сохранить в outputstream.
1BytearRayOutputStream outpertStream = new BytearRayOutputStream ();
2Попробуйте (gziparchive archive = new gziparchive ()) {
3 archive.setsource (новый файл (datadir + "data.bin"));
4 archive.save (outputstream);
5}