Spec-Zone.ru › OpenJDK 25

Класс LineNumberInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.LineNumberInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
@Deprecated public class LineNumberInputStream extends FilterInputStream
Устарел.
Этот класс ошибочно предполагает, что байты адекватно представляют символы. Начиная с JDK 1.1 предпочтительным способом работы с символьными потоками является использование новых классов символьных потоков, включая класс для подсчёта номеров строк.
Этот класс представляет собой фильтр входного потока, который предоставляет дополнительную возможность отслеживать текущий номер строки.

Строка — это последовательность байтов, заканчивающаяся символом возврата каретки ('\r'), символом новой строки ('\n') или символом возврата каретки, за которым непосредственно следует символ перевода строки. Во всех трёх случаях завершающий строку символ или символы возвращаются как один символ новой строки.

Нумерация строк начинается с 0 и увеличивается на 1, когда read возвращает символ новой строки.

Начиная с версии:
1.0
См. также:
  • LineNumberReader

Краткое описание полей

Поля, объявленные в классе FilterInputStream

in

Краткое описание конструкторов

Конструктор Описание
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 байтов данных из этого входного потока.

Методы, объявленные в классе FilterInputStream

close, markSupported, read

Методы, объявленные в классе InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

Методы, объявленные в классе 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)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API