Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | Индекс

22.12 Класс java.io.LineNumberInputStream

A LineNumberInputStream добавляет функциональность к другому входному потоку, а именно, возможность считать строки. Когда LineNumberInputStream создается, счетчик номера строки обнуляется. Поскольку байты от потока читаются или пропускаются, счетчик постепенно увеличивается всякий раз, когда разделитель строки (\n, \r, или \r\n) встречается. Такие разделители строки также преобразовываются в сингл '\n' символ. Метод getLineNumber возвращает текущую стоимость счетчика, и метод setLineNumber устанавливает в противоречии с данным целочисленным значением. Если содержавший входной поток поддерживает mark работа, затем так делает LineNumberInputStream; mark работа помнит счетчик номера строки и reset работа устанавливает в противоречии со значением, которое помнят mark работа.

public class LineNumberInputStream extends FilterInputStream {
	public LineNumberInputStream(InputStream in);
	public int read() throws IOException;
	public int read(byte[] b)
		throws IOException, NullPointerException;
	public int read(byte[] b, int off, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException; public long skip(long n) throws IOException; public int available() throws IOException; public void mark(int readlimit); public void reset() throws IOException; public int getLineNumber(); public void setLineNumber(int lineNumber); }

22.12.1 public LineNumberInputStream(InputStream in)

Этот конструктор инициализирует недавно создаваемый LineNumberInputStream сохраняя его параметр, входной поток in, для более позднего использования.

22.12.2 public int read() throws IOException

См. общий контракт read метод InputStream (§22.3.1).

Поскольку байты читаются из содержавшего входного потока, разделители строки распознаются и считаются. Для каждого разделителя строки, распознанного в содержавшем входном потоке, единственном символе '\n' возвращается.

Переопределения read метод FilterInputStream (§22.9.3).

22.12.3 public int read(byte[] b)
throws IOException, NullPointerException

См. общий контракт read метод InputStream (§22.3.2).

Поскольку байты читаются из содержавшего входного потока, разделители строки распознаются и считаются. Для каждого разделителя строки, распознанного в содержавшем входном потоке, единственном символе '\n' возвращается.

Переопределения read метод FilterInputStream (§22.9.4).

22.12.4 public int read(byte[] b, int off, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException

См. общий контракт read метод InputStream (§22.3.3).

Поскольку байты читаются из содержавшего входного потока, разделители строки распознаются и считаются. Для каждого разделителя строки, распознанного в содержавшем входном потоке, единственном символе '\n' возвращается.

Переопределения read метод FilterInputStream (§22.9.5).

22.12.5 public long skip(long n) throws IOException

См. общий контракт skip метод InputStream (§22.3.4).

Поскольку байты читаются из содержавшего входного потока, разделители строки распознаются и считаются. Каждый разделитель строки, распознанный в содержавшем входном потоке, как полагают, является единственным пропущенным байтом, даже если это - последовательность \r\n.

Переопределения skip метод FilterInputStream (§22.9.6).

22.12.6 public int available() throws IOException

См. общий контракт available метод InputStream (§22.3.5).

Отметьте, что, если содержавший входной поток в состоянии предоставить k, вводит символы без блокирования, LineNumberInputStream может гарантировать только, что обеспечил символы без блокирования, потому что k символов от содержавшего входного потока мог бы состоять из \r\n пары, которые будут преобразованы в только '\n' символы.

Переопределения available метод FilterInputStream (§22.9.7).

22.12.7 public void mark(int readlimit)

См. общий контракт mark метод InputStream (§22.3.7).

Отмечание точки во входном потоке помнит текущий номер строки, поскольку это было бы возвращено getLineNumber (§22.12.9).

Переопределения mark метод FilterInputStream (§22.9.9).

22.12.8 public void reset() throws IOException

См. общий контракт reset метод InputStream (§22.3.8).

Сброс входного потока к предыдущей точке также сбрасывает номер строки к значению, которое это имело в отмеченной точке.

Переопределения reset метод FilterInputStream (§22.9.10).

22.12.9 public int getLineNumber()

Текущий номер строки возвращается. Это количество зависит от k, числа разделителей строки, с которыми встречаются начиная с нового возникновения одного из следующих трех видов событий:

Эти правила подразумевают, что текущий номер строки 0 поскольку символы первой строки читаются, и становится 1 после того, как разделитель строки для первой строки был считан.

22.12.10 public void setLineNumber(int lineNumber)

Текущий номер строки устанавливается равный параметру.


Содержание | Предыдущий | Следующий | Индекс

Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com

free hit counter