Spec-Zone.ru › OpenJDK 8

Класс LineNumberInputStream

  • java.lang.Object
    • java.io.InputStream
      • java.io.FilterInputStream
        • java.io.LineNumberInputStream
Все реализованные интерфейсы:
Closeable, AutoCloseable

Устаревший.

Этот класс неправильно предполагает, что байты адекватно представляют символы. Начиная с JDK 1.1, предпочтительный способ работы с потоками символов — использование новых классов потоков символов, которые включают класс для подсчёта номеров строк.

@Deprecated
public class LineNumberInputStream
extends FilterInputStream

Этот класс является фильтром потока ввода, предоставляющим дополнительную функциональность отслеживания текущего номера строки.

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

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

С:
JDK1.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)

Устаревший.

Считывает до len байтов данных из этого потока ввода в массив байтов.

void reset()

Устаревший.

Перемещает этот поток в позицию на момент, когда метод mark был в последний раз вызван для этого потока ввода.

void setLineNumber(int lineNumber)

Устаревший.

Устанавливает номер строки в указанное значение.

long skip(long n)

Устаревший.

Пропускает и игнорирует n байтов данных из этого потока ввода.

Методы, унаследованные от класса java.io.FilterInputStream

close, markSupported, read

Методы, унаследованные от класса 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.

Spec-Zone.ru

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