Класс SequenceInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.SequenceInputStream
- Все реализованные интерфейсы:
- Closeable, AutoCloseable
public class SequenceInputStream extends InputStream
Объект SequenceInputStream представляет собой логическое объединение других потоков ввода. Он начинает работу с упорядоченного набора потоков ввода и считывает данные из первого до достижения конца файла, после чего считывает из второго и так далее, пока не достигнет конца файла в последнем из содержащихся потоков ввода.
- С момента:
- JDK1.0
Конструкторы
| Конструктор и описание |
|---|
SequenceInputStream(Enumeration<? extends InputStream> e) Инициализирует новый |
SequenceInputStream(InputStream s1,
InputStream s2) Инициализирует новый |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
int |
available() Возвращает оценку количества байтов, которые можно прочитать (или пропустить) из текущего базового потока ввода без блокировки до следующего вызова метода для текущего базового потока ввода. Следующий вызов может быть выполнен той же или другой нитью. Одновременное чтение или пропуск указанного количества байтов не приведет к блокировке, но может привести к чтению или пропусканию меньшего количества байтов. |
void |
close() Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком. Закрытый |
int |
read() Считывает следующий байт данных из этого потока ввода. |
int |
read(byte[] b,
int off,
int len) Считывает до |
Методы, унаследованные от класса java.io.InputStream
mark, markSupported, read, reset, skip Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
SequenceInputStream
public SequenceInputStream(Enumeration<? extends InputStream> e)
Инициализирует новый SequenceInputStream, запоминая аргумент, который должен быть Enumeration, который создаёт объекты, тип которых во время выполнения InputStream. Потоки ввода, которые создаются перечислением, будут считываться в порядке, чтобы предоставить байты для чтения из этого SequenceInputStream. После того, как каждый поток ввода из перечисления исчерпан, он закрывается путем вызова его метода close.
- Параметры:
-
e- перечисление потоков ввода. - См. также:
Enumeration
SequenceInputStream
public SequenceInputStream(InputStream s1,
InputStream s2) Инициализирует новый SequenceInputStream, запоминая два аргумента, которые будут считываться в порядке: сначала s1 и затем s2, чтобы предоставить байты для чтения из этого SequenceInputStream.
- Параметры:
-
s1- первый поток ввода для чтения. -
s2- второй поток ввода для чтения.
Методы
available
public int available()
throws IOException Возвращает оценку количества байтов, которые можно прочитать (или пропустить) из текущего базового потока ввода без блокировки до следующего вызова метода для текущего базового потока ввода. Следующий вызов может быть выполнен той же или другой нитью. Одновременное чтение или пропуск указанного количества байтов не приведет к блокировке, но может привести к чтению или пропусканию меньшего количества байтов.
Этот метод просто вызывает available текущего базового потока ввода и возвращает результат.
- Переопределяет:
-
availableв классеInputStream - Возвращает:
- оценку количества байтов, которые можно прочитать (или пропустить) из текущего базового потока ввода без блокировки или
0если этот поток ввода был закрыт вызовом его методаclose() - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - С момента:
- JDK1.1
read
public int read()
throws IOException Считывает следующий байт данных из этого потока ввода. Байты возвращаются как int в диапазоне от 0 до 255. Если байт недоступен, потому что достигнут конец потока, возвращается значение -1. Этот метод блокируется до тех пор, пока данные ввода не станут доступны, не будет обнаружен конец потока или не будет выброшено исключение.
Этот метод пытается прочитать один символ из текущего потока. Если он достигает конца потока, он вызывает метод close текущего потока и начинает чтение из следующего потока.
- Определено в:
-
readв классеInputStream - Возвращает:
- следующий байт данных или
-1если достигнут конец потока. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
read
public int read(byte[] b,
int off,
int len)
throws IOException Считывает до len байтов данных из этого потока ввода в массив байтов. Если len не равно нулю, метод блокируется до тех пор, пока не станет доступным по крайней мере 1 байт ввода; в противном случае байты не считываются и возвращается значение 0.
Метод read класса SequenceInputStream пытается прочитать данные из текущего потока. Если он не смог прочитать символы, потому что в подпотоке достигнут конец потока, он вызывает метод close текущего потока и начинает чтение из следующего потока.
- Переопределяет:
-
readв классеInputStream - Параметры:
-
b- буфер, в который считываются данные. -
off- начальный индекс в массивеb, с которого данные записываются. -
len- максимальное количество считываемых байтов. - Возвращает:
- количество считанных байтов.
- Исключения:
-
NullPointerException- Еслиbравноnull. -
IndexOutOfBoundsException- Еслиoffотрицательное,lenотрицательное илиlenбольше, чемb.length - off -
IOException- если произошла ошибка ввода-вывода. - См. также:
InputStream.read()
close
public void close()
throws IOException Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком. Закрытый SequenceInputStream не может выполнять операции ввода и не может быть повторно открыт.
Если этот поток был создан из перечисления, все оставшиеся элементы запрашиваются из перечисления и закрываются перед возвращением метода close.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Переопределяет:
-
closeв классеInputStream - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.