Spec-Zone .ru
спецификации, руководства, описания, API
|
java.io.PushbackInputStream
PushbackInputStream
добавляет функциональность к другому входному потоку, а именно, возможность "пододвинуть обратно" или "непрочитанный" один байт. Это полезно в ситуациях, где удобно для фрагмента кода считать неопределенное число байтов данных, которые разграничиваются определенным значением байта; после чтения завершающегося байта фрагмент кода может "непрочитанный" это, так, чтобы следующая операция чтения на входном потоке перечитала байт, который был пододвинут обратно. Например, байты, представляющие символы, составляющие идентификатор, могли бы быть завершены байтом, представляющим символ оператора; метод, задание которого должно считать только идентификатор, может читать, пока это не видит оператор, и затем продвиньте оператор назад быть перечитанным. public classPushbackInputStream
extends FilterInputStream { protected intpushBack
= -1; publicPushbackInputStream
(InputStream in); public intread
() throws IOException; public intread
(byte[] bytes, int offset, int length) throws IOException, NullPointerException, IndexOutOfBoundsException; public voidunread
(int ch) throws IOException; public intavailable
() throws IOException; public booleanmarkSupported
(); }
22.13.1 protected int
pushBack
= -1;
Если у этого поля есть неотрицательное значение, это - байт, который был пододвинут обратно. Если это поле -1
, нет в настоящий момент никакого назад продвинутого байта.
22.13.2 public
PushbackInputStream
(InputStream in)
Этот конструктор инициализирует недавно создаваемый PushbackInputStream
сохраняя его параметр, входной поток in
, для более позднего использования. Первоначально, нет никакого назад продвинутого байта (поле pushBack
инициализируется к -1
).
22.13.3 public int
read
() throws IOException
См. общий контракт read
метод InputStream
(§22.3.1).
Если pushBack
не -1
, значение pushBack
возвращается и pushBack
устанавливается в -1
. Иначе, байт получается из содержавшего входного потока.
Переопределения read
метод FilterInputStream
(§22.9.3).
22.13.4 public int
read
(byte[] bytes, int offset, int length) throws IOException, NullPointerException, IndexOutOfBoundsException
См. общий контракт read
метод InputStream
(§22.3.3).
Если pushBack
не -1
, это используется в качестве входного байта (и pushBack
устанавливается в -1
) прежде, чем любые байты читаются из содержавшего входного потока.
Переопределения read
метод FilterInputStream
(§22.9.5).
22.13.5 public void
unread
(int b) throws IOException
Если pushBack
не -1
, IOException
бросается (не разрешается пододвинуть больше чем один байт обратно). Иначе, значение байта b
пододвигается обратно, присваиваясь b
к pushBack
.
22.13.6 public int
available
() throws IOException
См. общий контракт available
метод InputStream
(§22.3.1).
Этот метод первые вызовы available
метод содержавшего входного потока. Если pushBack
-1
, результат возвращается; иначе, результат плюс 1
возвращается.
Переопределения available
метод FilterInputStream
(§22.9.7).
22.13.7 public boolean
markSupported
()
Этот метод возвраты false
(a PushbackInputStream
не поддерживает mark
).
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com