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