|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class PushbackInputStream extends FilterInputStream
PushbackInputStream добавляет функциональность к другому входному потоку, а именно, возможность "пододвинуть обратно" или "непрочитанный" один байт. Это полезно в ситуациях, где удобно для фрагмента кода считать неопределенное число байтов данных, которые разграничиваются определенным значением байта; после чтения завершающегося байта фрагмент кода может "непрочитанный" это, так, чтобы следующая операция чтения на входном потоке перечитала байт, который был пододвинут обратно. Например, байты, представляющие символы, составляющие идентификатор, могли бы быть завершены байтом, представляющим символ оператора; метод, задание которого должно считать только идентификатор, может читать, пока это не видит оператор, и затем продвиньте оператор назад быть перечитанным.| Модификатор и Тип | Поле и Описание |
|---|---|
protected byte[] |
buf
Буфер pushback.
|
protected int |
на месте продажи
Позиция в пределах pushback буферизует, из которого будет считан следующий байт.
|
в| Конструктор и Описание |
|---|
PushbackInputStream(InputStream in)
Создает a
PushbackInputStream и сохраняет его параметр, входной поток in, для более позднего использования. |
PushbackInputStream(InputStream in, int size)
Создает a
PushbackInputStream с pushback буфером указанного size, и сохраняет его параметр, входной поток in, для более позднего использования. |
| Модификатор и Тип | Метод и Описание |
|---|---|
int |
available()
Возвращает оценку числа байтов, которые могут быть считаны (или перескочиться) от этого входного потока, не блокируя следующим вызовом метода для этого входного потока.
|
void |
close()
Завершения этот входной поток и выпуски любые системные ресурсы связались с потоком.
|
void |
mark(int readlimit)
Отмечает текущую позицию в этом входном потоке.
|
boolean |
markSupported()
Тесты, если этот входной поток поддерживает
mark и reset методы, которые это не делает. |
int |
read()
Читает следующий байт данных от этого входного потока.
|
int |
read(byte[] b, int off, int len)
Чтения до
len байты данных от этого входного потока в массив байтов. |
void |
reset()
Репозиции этот поток к позиции в это время
mark метод был последним, обращался к этому входному потоку. |
long |
skip(long n)
Перескакивает и отбрасывает
n байты данных от этого входного потока. |
void |
unread(byte[] b)
Пододвигает массив обратно байтов, копируя это в переднюю сторону буфера pushback.
|
void |
unread(byte[] b, int off, int len)
Пододвигает часть обратно массива байтов, копируя это в переднюю сторону буфера pushback.
|
void |
unread(int b)
Пододвигает байт обратно, копируя это в переднюю сторону буфера pushback.
|
читатьprotected byte[] buf
protected int pos
pos равно buf.length; когда буфер полон, pos равно нулю.public PushbackInputStream(InputStream in, int size)
PushbackInputStream с pushback буфером указанного size, и сохраняет его параметр, входной поток in, для более позднего использования. Первоначально, нет никакого назад продвинутого байта (поле pushBack инициализируется к -1).in - входной поток, из которого будут считаны байты.size - размер буфера pushback.IllegalArgumentException - если размер <= 0public PushbackInputStream(InputStream in)
PushbackInputStream и сохраняет его параметр, входной поток in, для более позднего использования. Первоначально, нет никакого назад продвинутого байта (поле pushBack инициализируется к -1).in - входной поток, из которого будут считаны байты.public int read()
throws IOException
int в диапазоне 0 к 255. Если никакой байт не доступен, потому что конец потока был достигнут, значение -1 возвращается. Этот метод блоки до входных данных доступен, конец потока обнаруживается, или исключение выдается. Этот метод возвращает последний раз назад продвинутый байт, если есть один, и иначе вызывает read метод его базового входного потока и возвратов безотносительно значения тот метод возвраты.
read в class FilterInputStream-1 если конец потока был достигнут.IOException - если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.InputStream.read()public int read(byte[] b,
int off,
int len)
throws IOException
len байты данных от этого входного потока в массив байтов. Этот метод первые чтения любые назад продвинутые байты; после этого, если меньше чем len байты были считаны тогда, это читает из базового входного потока. Если len не нуль, блоки метода, пока по крайней мере 1 байт ввода не доступен; иначе, никакие байты не читаются и 0 возвращается.read в class FilterInputStreamb - буфер, в который читаются данные.off - запуск смещается в целевом массиве blen - максимальное количество байтов читало.-1 если нет больше данных, потому что конец потока был достигнут.NullPointerException - Если b null.IndexOutOfBoundsException - Если off отрицательно, len отрицательно, или len больше чем b.length - offIOException - если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.InputStream.read(byte[], int, int)public void unread(int b)
throws IOException
(byte)b.b - int оцените, чей байт младшего разряда должен быть пододвинут обратно.IOException - Если есть недостаточно комнаты в буфере pushback для байта, или этот входной поток был закрыт, вызывая close() метод.public void unread(byte[] b,
int off,
int len)
throws IOException
b[off], байт после того, как у этого будет значение b[off+1], и т.д.b - байтовый массив, чтобы пододвинуть обратно.off - смещение запуска данных.len - число байтов, чтобы пододвинуть обратно.IOException - Если есть недостаточно комнаты в буфере pushback для конкретного количества байтов, или этот входной поток был закрыт, вызывая close() метод.public void unread(byte[] b)
throws IOException
b[0], байт после того, как у этого будет значение b[1], и т.д.b - байтовый массив, чтобы пододвинуть обратноIOException - Если есть недостаточно комнаты в буфере pushback для конкретного количества байтов, или этот входной поток был закрыт, вызывая close() метод.public int available()
throws IOException
Метод возвращает сумму числа байтов, которые были пододвинуты обратно и значение, возвращенное available.
available в class FilterInputStreamIOException - если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.FilterInputStream.in, InputStream.available()public long skip(long n)
throws IOException
n байты данных от этого входного потока. skip метод, для множества причин, может закончить тем, что перескочил через некоторое меньшее число байтов, возможно обнулить. Если n отрицательно, никакие байты не пропускаются. skip метод PushbackInputStream сначала перескакивает через байты в буфере pushback, если любой. Это тогда вызывает skip метод базового входного потока, если больше байтов должно быть пропущено. Фактическое число пропущенных байтов возвращается.
skip в class FilterInputStreamn - число байтов, которые будут пропущены.IOException - если поток не поддерживает, ищут, или поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.FilterInputStream.in, InputStream.skip(long n)public boolean markSupported()
mark и reset методы, которые это не делает.markSupported в class FilterInputStreamfalse, так как этот class не поддерживает mark и reset методы.InputStream.mark(int), InputStream.reset()public void mark(int readlimit)
mark метод PushbackInputStream ничего не делает.
mark в class FilterInputStreamreadlimit - максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.InputStream.reset()public void reset()
throws IOException
mark метод был последним, обращался к этому входному потоку. Метод reset для class PushbackInputStream не делает ничего кроме броска IOException.
reset в class FilterInputStreamIOException - если этот метод вызывается.InputStream.mark(int), IOExceptionpublic void close()
throws IOException
close в интерфейсе Closeableclose в интерфейсе AutoCloseableclose в class FilterInputStreamIOException - если ошибка ввода-вывода происходит.FilterInputStream.in
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92