Java.util.zip.DeflaterInputStream класс в Java
Реализует фильтр входного потока для сжатия данных в формате сжатия «deflate».
Конструктор и описание
- DeflaterInputStream (InputStream in): создает новый входной поток с компрессором по умолчанию и размером буфера.
- DeflaterInputStream (InputStream in, Deflater defl): создает новый входной поток с указанным компрессором и размером буфера по умолчанию.
- DeflaterInputStream (InputStream in, Deflater defl, int bufLen): создает новый входной поток с указанным компрессором и размером буфера.
Методы:
- int available (): возвращает 0 после достижения EOF, в противном случае всегда возвращает 1.
Синтаксис: public int available () выбрасывает IOException Параметры: n - количество байтов, которые нужно пропустить Возврат: фактическое количество пропущенных байтов Броски: IOException
- void close (): закрывает этот входной поток и его базовый входной поток, отбрасывая все ожидающие обработки несжатые данные.
Синтаксис: public void close () выбрасывает IOException Заменяет: закрыть в классе FilterInputStream Броски: IOException
- void mark (int limit): эта операция не поддерживается.
Синтаксис: public void mark (int limit) Параметры: limit - максимальное количество байтов, которое может быть прочитано до того, как маркер позиции будет признан недействительным
- boolean markSupported (): всегда возвращает false, потому что этот входной поток не поддерживает методы mark () и reset ().
Синтаксис: public boolean markSupported () Возврат: ложь, всегда
- int read (): читает один байт сжатых данных из входного потока.
Синтаксис: public int read () выбрасывает IOException Возврат: один байт сжатых данных или -1, если конец несжатого входной поток достигнут Броски: IOException
- int read (byte [] b, int off, int len): читает сжатые данные в массив байтов.
Синтаксис: public int read (byte [] b, int off, int len) выбрасывает IOException Параметры: b - буфер, в который читаются данные off - начальное смещение данных внутри b len - максимальное количество сжатых байтов для чтения в b Возврат: фактическое количество прочитанных байтов или -1, если конец несжатый входной поток достигнут Броски: IndexOutOfBoundsException IOException
- void reset (): эта операция не поддерживается.
Синтаксис: public void reset () выбрасывает IOException Броски: IOException
- long skip (long n): пропускает и отбрасывает данные из входного потока.
Синтаксис: public long skip (long n) выбрасывает IOException Параметры: n - количество байтов, которые нужно пропустить Возврат: фактическое количество пропущенных байтов Броски: IOException
Program:
//Java program to illustrate DeflaterInputStream class import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.zip.DeflaterInputStream; class DeflaterInputStreamDemo { public static void main(String[] args) throws IOException { byte b[] = new byte [ 10 ]; for ( byte i = 0 ; i < 10 ; i++) { b[i] = i; } ByteArrayInputStream bin = new ByteArrayInputStream(b); DeflaterInputStream din = new DeflaterInputStream(bin); //illustrating markSupported() method System.out.println(din.markSupported()); //illustrating skip() method din.skip( 1 ); //illustrating available() method System.out.println(din.available()); //illustrating read(byte[] b,int off,int len) byte c[] = new byte [ 10 ]; din.read(c, 0 , 9 ); for ( int i = 0 ; i < 9 ; i++) { System.out.print(c[i]); } while (din.available() == 1 ) { //Reads a single byte of compressed data System.out.print(din.read()); } System.out.println(); System.out.println(din.available()); // illustrating close() method din.close(); } } |
Выход :
false 1 -1009996100981029710199231224400175046-1 0
Приведенный выше вывод представляет сжатые данные.
Следующая статья: Класс Java.util.zip.DeflaterOutputStream в Java
Автор статьи - Нишант Шарма . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .