Класс LineNumberInputStream
- Все реализуемые интерфейсы:
Closeable, AutoCloseable
@Deprecated public class LineNumberInputStream extends FilterInputStream
Строка — это последовательность байтов, заканчивающаяся символом возврата каретки ('\r'), символом новой строки ('\n') или символом возврата каретки, за которым непосредственно следует символ перевода строки. Во всех трёх случаях завершающий строку символ или символы возвращаются как один символ новой строки.
Нумерация строк начинается с 0 и увеличивается на 1, когда read возвращает символ новой строки.
- Начиная с версии:
- 1.0
- См. также:
Краткое описание полей
Поля, объявленные в классе FilterInputStream
in
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LineNumberInputStream |
Устарел. Создаёт входной поток с нумерацией строк, считывающий данные из указанного входного потока. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Устарел. Возвращает количество байтов, которые можно прочитать из этого входного потока без блокировки. |
int |
getLineNumber() |
Устарел. Возвращает текущий номер строки. |
void |
mark |
Устарел. Помечает текущую позицию в этом входном потоке. |
int |
read() |
Устарел. Считывает следующий байт данных из этого входного потока. |
int |
read |
Устарел. Считывает до len байтов данных из этого входного потока в массив байтов. |
void |
reset() |
Устарел. Перемещает этот поток в позицию, в которой он находился в момент последнего вызова метода mark для этого входного потока. |
void |
setLineNumber |
Устарел. Устанавливает номер строки, указанный в аргументе. |
long |
skip |
Устарел. Пропускает и отбрасывает n байтов данных из этого входного потока. |
Методы, объявленные в классе FilterInputStream
close, markSupported, read
Методы, объявленные в классе InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Подробное описание конструкторов
LineNumberInputStream
public LineNumberInputStream(InputStream in)
- Параметры:
-
in— базовый входной поток.
Подробное описание методов
read
public int read() throws IOException
int в диапазоне от 0 до 255. Если байт недоступен, поскольку достигнут конец потока, возвращается значение -1. Этот метод блокируется до тех пор, пока не станут доступны входные данные, не будет обнаружен конец потока или не возникнет исключение. Метод read класса LineNumberInputStream вызывает метод read базового входного потока. Он проверяет наличие в данных символов возврата каретки и символов новой строки и соответствующим образом изменяет текущий номер строки. Символ возврата каретки или последовательность из символа возврата каретки и символа новой строки преобразуются в один символ новой строки.
- Переопределяет:
-
readв классеFilterInputStream - Возвращает:
- следующий байт данных или
-1, если достигнут конец этого потока. - Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
read
public int read(byte[] b, int off, int len) throws IOException
len байтов данных из этого входного потока в массив байтов. Этот метод блокируется до тех пор, пока не появятся входные данные. Метод read класса LineNumberInputStream многократно вызывает метод read без аргументов, чтобы заполнить массив байтов.
- Переопределяет:
-
readв классеFilterInputStream - Параметры:
-
b— буфер, в который считываются данные. -
off— начальное смещение данных. -
len— максимальное количество считываемых байтов. - Возвращает:
- общее количество байтов, считанных в буфер, или
-1, если данных больше нет, поскольку достигнут конец этого потока. - Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
skip
public long skip(long n) throws IOException
n байтов данных из этого входного потока. По разным причинам метод skip может пропустить меньшее количество байтов, возможно, 0. Возвращается фактическое количество пропущенных байтов. Если n отрицательно, байты не пропускаются. Метод skip класса LineNumberInputStream создаёт массив байтов, а затем многократно считывает в него данные, пока не будут прочитаны n байтов или не будет достигнут конец потока.
- Переопределяет:
-
skipв классеFilterInputStream - Параметры:
-
n— количество байтов, которые нужно пропустить. - Возвращает:
- фактическое количество пропущенных байтов.
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
setLineNumber
public void setLineNumber(int lineNumber)
- Параметры:
-
lineNumber— новый номер строки. - См. также:
getLineNumber
public int getLineNumber()
- Возвращает:
- текущий номер строки.
- См. также:
available
public int available() throws IOException
Обратите внимание: если базовый входной поток может предоставить без блокировки k входных символов, LineNumberInputStream может гарантировать предоставление без блокировки только k/2 символов, поскольку k символов из базового входного потока могут состоять из k/2 пар '\r' и '\n', которые преобразуются всего в k/2 символов '\n'.
- Переопределяет:
-
availableв классеFilterInputStream - Возвращает:
- количество байтов, которые можно прочитать из этого входного потока без блокировки.
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
mark
public void mark(int readlimit)
reset перемещает поток в последнюю помеченную позицию, чтобы при последующем чтении повторно считывались те же байты. Метод mark класса LineNumberInputStream сохраняет текущий номер строки в закрытой переменной, а затем вызывает метод mark базового входного потока.
- Переопределяет:
-
markв классеFilterInputStream - Параметры:
-
readlimit— максимальное количество байтов, которое можно прочитать до того, как позиция метки станет недействительной. - См. также:
reset
public void reset() throws IOException
mark для этого входного потока. Метод reset класса LineNumberInputStream сбрасывает номер строки до значения, которое было в момент вызова метода mark, а затем вызывает метод reset базового входного потока.
Метки потока предназначены для ситуаций, когда требуется немного прочитать данные вперёд, чтобы понять содержимое потока. Часто проще всего это сделать с помощью универсального синтаксического анализатора. Если поток имеет тип, обрабатываемый анализатором, он просто продолжает работу. Если поток имеет другой тип, анализатор должен выбросить исключение при ошибке, что, если это произойдёт в пределах readlimit байтов, позволит внешнему коду сбросить поток и попробовать другой анализатор.
- Переопределяет:
-
resetв классеFilterInputStream - Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
© 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/LineNumberInputStream.html