Spec-Zone .ru
спецификации, руководства, описания, API
|
@Deprecated public class LineNumberInputStream extends FilterInputStream
Строка является последовательностью байтов, заканчивающихся символом возврата каретки ('\r'
), символ новой строки ('\n'
), или символ возврата каретки, сопровождаемый сразу символом перевода строки. Во всех трех случаях оконечный знак (и) строки возвращается как единственный символ новой строки.
Номер строки начинается в 0
, и постепенно увеличивается 1
когда a read
возвращает символ новой строки.
LineNumberReader
в
Конструктор и Описание |
---|
LineNumberInputStream(InputStream in)
Осуждаемый.
Создает входной поток числа новой строки, который читает его ввод из указанного входного потока.
|
Модификатор и Тип | Метод и Описание |
---|---|
int |
available()
Осуждаемый.
Возвращает число байтов, которые могут быть считаны из этого входного потока без блокирования.
|
int |
getLineNumber()
Осуждаемый.
Возвращает текущий номер строки.
|
void |
mark(int readlimit)
Осуждаемый.
Отмечает текущую позицию в этом входном потоке.
|
int |
read()
Осуждаемый.
Читает следующий байт данных от этого входного потока.
|
int |
read(byte[] b, int off, int len)
Осуждаемый.
Чтения до
len байты данных от этого входного потока в массив байтов. |
void |
reset()
Осуждаемый.
Репозиции этот поток к позиции в это время
mark метод был последним, обращался к этому входному потоку. |
void |
setLineNumber(int lineNumber)
Осуждаемый.
Устанавливает номер строки в указанный параметр.
|
long |
skip(long n)
Осуждаемый.
Перескакивает и отбрасывает
n байты данных от этого входного потока. |
close, markSupported, read
public LineNumberInputStream(InputStream in)
in
- базовый входной поток.public int read() throws IOException
int
в диапазоне 0
к 255
. Если никакой байт не доступен, потому что конец потока был достигнут, значение -1
возвращается. Этот метод блоки до входных данных доступен, конец потока обнаруживается, или исключение выдается. read
метод LineNumberInputStream
вызовы read
метод базового входного потока. Это проверяет на возвраты каретки и символы новой строки во вводе, и изменяет текущий номер строки как соответствующий. Символ возврата каретки или возврат каретки, сопровождаемый символом новой строки, оба преобразовываются в единственный символ новой строки.
read
в классе FilterInputStream
-1
если конец этого потока достигается.IOException
- если ошибка ввода-вывода происходит.FilterInputStream.in
, getLineNumber()
public int read(byte[] b, int off, int len) throws IOException
len
байты данных от этого входного потока в массив байтов. Этот метод блоки до некоторого ввода доступен. read
метод LineNumberInputStream
неоднократно вызовы read
метод нулевых параметров, чтобы заполнить байтовый массив.
read
в классе FilterInputStream
b
- буфер, в который читаются данные.off
- смещение запуска данных.len
- максимальное количество байтов читало.-1
если нет больше данных, потому что конец этого потока был достигнут.IOException
- если ошибка ввода-вывода происходит.read()
public long skip(long n) throws IOException
n
байты данных от этого входного потока. skip
метод, для множества причин, может закончить тем, что перескочил через некоторое меньшее число байтов, возможно 0
. Фактическое число пропущенных байтов возвращается. Если n
отрицательно, никакие байты не пропускаются. skip
метод LineNumberInputStream
создает байтовый массив и затем неоднократно не читает в это до n
байты были считаны, или конец потока был достигнут.
skip
в классе FilterInputStream
n
- число байтов, которые будут пропущены.IOException
- если ошибка ввода-вывода происходит.FilterInputStream.in
public void setLineNumber(int lineNumber)
lineNumber
- число новой строки.getLineNumber()
public int getLineNumber()
setLineNumber(int)
public int available() throws IOException
Отметьте, что, если базовый входной поток в состоянии предоставить k, вводит символы без блокирования, LineNumberInputStream
может гарантировать только, что обеспечил k/2 символов без блокирования, потому что k символов от базового входного потока мог бы состоять из k/2 пар '\r'
и '\n'
, которые преобразовываются в только k/2 '\n'
символы.
available
в классе FilterInputStream
IOException
- если ошибка ввода-вывода происходит.FilterInputStream.in
public void mark(int readlimit)
reset
репозиции метода этот поток в последней отмеченной позиции так, чтобы последующие чтения, перечитанные те же самые байты. mark
метод LineNumberInputStream
помнит текущий номер строки в частной переменной, и затем вызывает mark
метод базового входного потока.
mark
в классе FilterInputStream
readlimit
- максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.FilterInputStream.in
, reset()
public void reset() throws IOException
mark
метод был последним, обращался к этому входному потоку. reset
метод LineNumberInputStream
сбрасывает номер строки, чтобы быть номером строки в это время mark
метод вызвали, и затем вызывает reset
метод базового входного потока.
Потоковые метки предназначаются, чтобы использоваться в ситуациях, где Вы должны читать вперед немного, чтобы видеть то, что находится в потоке. Часто это наиболее легко делается, вызывая некоторый общий синтаксический анализатор. Если поток имеет тип, обработанный синтаксическим анализатором, это только двигается с пыхтением вперед счастливо. Если поток не имеет того типа, синтаксический анализатор должен бросить исключение, когда это перестало работать, который, если это происходит в пределах readlimit байтов, позволяет внешнему коду сбрасывать поток и пробовать другой синтаксический анализатор.
reset
в классе FilterInputStream
IOException
- если ошибка ввода-вывода происходит.FilterInputStream.in
, mark(int)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.