Рубрики

Класс Java.util.zip.InflaterInputStream в Java

Этот класс реализует потоковый фильтр для распаковки данных в формате сжатия «deflate». Он также используется в качестве основы для других декомпрессионных фильтров, таких как GZIPInputStream.
Конструкторы

  • InflaterInputStream (InputStream in): создает новый входной поток с декомпрессором по умолчанию и размером буфера.
  • InflaterInputStream (InputStream in, Inflater inf): создает новый входной поток с указанным декомпрессором и размером буфера по умолчанию.
  • InflaterInputStream (InputStream in, Inflater inf, int size): создает новый входной поток с указанным декомпрессором и размером буфера.

Методы:

  • int available (): возвращает 0 после достижения EOF, в противном случае всегда возвращает 1.
    Syntax : public int available()
                  throws IOException
    Returns:
    1 before EOF and 0 after EOF.
    Throws:
    IOException
    
  • void close (): закрывает этот входной поток и освобождает все системные ресурсы, связанные с этим потоком.
    Syntax : public void close()
               throws IOException
    Throws:
    IOException 
    
  • protected void fill (): Заполняет входной буфер большим количеством данных для распаковки.
    Syntax : protected void fill()
                 throws IOException
    Throws:
    IOException
    
  • void mark (int readlimit): отмечает текущую позицию в этом входном потоке.
    Syntax : public void mark(int readlimit)
    Parameters:
    readlimit - the maximum limit of bytes that can be read
    before the mark position becomes invalid.
  • boolean markSupported (): Проверяет, поддерживает ли этот поток ввода методы mark и reset.
    Syntax : public boolean markSupported()
    Returns:
    a boolean indicating if this stream type supports the mark and reset methods.
    
  • int read (): читает байт несжатых данных.
    Syntax : public int read()
             throws IOException
    Returns:
    the byte read, or -1 if end of compressed input is reached
    Throws:
    IOException
  • int read (byte [] b, int off, int len): считывает несжатые данные в массив байтов.
    Syntax : public int read(byte[] b,
           int off,
           int len)
             throws IOException
    Parameters:
    b - the buffer into which the data is read
    off - the start offset in the destination array b
    len - the maximum number of bytes read
    Returns:
    the actual number of bytes read, or -1 if the end of the compressed input is reached.
    Throws:
    NullPointerException 
    IndexOutOfBoundsException 
    ZipException
    IOException
    
  • void reset (): перемещает этот поток в позицию во время последнего вызова метода mark для этого входного потока.
    Syntax : public void reset()
               throws IOException
    Throws:
    IOException
    
  • long skip (long n): пропускает указанное количество байт несжатых данных.
    Syntax : public long skip(long n)
              throws IOException
    Parameters:
    n - the number of bytes to skip
    Returns:
    the actual number of bytes skipped.
    Throws:
    IOException 
    IllegalArgumentException 

Программа:

// Java-программа для демонстрации InflaterInputStream

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.DeflaterOutputStream;

import java.util.zip.InflaterInputStream;

  

  

class InflaterInputStreamDemo

{

    public static void main(String[] args) throws IOException

    {

  

        FileOutputStream fos = new FileOutputStream("file.txt");

  

        // Назначаем FileOutputStream для DeflaterOutputStream

        DeflaterOutputStream dos = new DeflaterOutputStream(fos);

  

        // записать его в DeflaterOutputStream

        for (int i = 0; i < 10; i++)

        {

            dos.write(i);

        }

        dos.flush();

        dos.close();

        FileInputStream fis = new FileInputStream("file.txt");

        InflaterInputStream iis = new InflaterInputStream(fis);

  

        // иллюстрируем метод available ()

        System.out.println(iis.available());

  

        // иллюстрируем mark и markSupported ()

        if (iis.markSupported())

            iis.mark(15);

        else

            System.out.println(false);

          

        // иллюстрирующий метод skip ()

        iis.skip(3);

  

        // иллюстрирующий read ()

        for (int i = 0; i <3 ; i++) 

        {

            System.out.print(iis.read());

        }

  

        // иллюстрируем чтение (byte [] b, int off, int len)

        byte b[]=new byte[4];

          

        for (int i = 0; i <4 ; i++) 

        {

            iis.read(b,0,4);

        }

          

        for (int i = 0; i < 4; i++) 

        {

            System.out.print(b[i]);

        }

    }

}

Выход:

1
false
3456789


Следующая статья:
Java.util.zip.InflaterOutputStream класс в Java

Эта статья предоставлена Nishant Sharma . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Класс Java.util.zip.InflaterInputStream в Java

0.00 (0%) 0 votes