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

22.13 Класс java.io.PushbackInputStream

A PushbackInputStream добавляет функциональность к другому входному потоку, а именно, возможность "пододвинуть обратно" или "непрочитанный" один байт. Это полезно в ситуациях, где удобно для фрагмента кода считать неопределенное число байтов данных, которые разграничиваются определенным значением байта; после чтения завершающегося байта фрагмент кода может "непрочитанный" это, так, чтобы следующая операция чтения на входном потоке перечитала байт, который был пододвинут обратно. Например, байты, представляющие символы, составляющие идентификатор, могли бы быть завершены байтом, представляющим символ оператора; метод, задание которого должно считать только идентификатор, может читать, пока это не видит оператор, и затем продвиньте оператор назад быть перечитанным.

public class PushbackInputStream extends FilterInputStream {
	protected int	 pushBack = -1;
	public PushbackInputStream(InputStream in);
	public int read() throws IOException;
	public int read(byte[] bytes, int offset, int length)
		throws IOException, NullPointerException,
			IndexOutOfBoundsException;
	public void unread(int ch) throws IOException;
	public int available() throws IOException;
	public boolean markSupported();
}

22.13.1 protected int pushBack = -1;

Если у этого поля есть неотрицательное значение, это - байт, который был пододвинут обратно. Если это поле -1, нет в настоящий момент никакого назад продвинутого байта.

22.13.2 public PushbackInputStream(InputStream in)

Этот конструктор инициализирует недавно создаваемый PushbackInputStream сохраняя его параметр, входной поток in, для более позднего использования. Первоначально, нет никакого назад продвинутого байта (поле pushBack инициализируется к -1).

22.13.3 public int read() throws IOException

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

Если pushBack не -1, значение pushBack возвращается и pushBack устанавливается в -1. Иначе, байт получается из содержавшего входного потока.

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

22.13.4 public int read(byte[] bytes, int offset, int length) throws IOException, NullPointerException, IndexOutOfBoundsException

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

Если pushBack не -1, это используется в качестве входного байта (и pushBack устанавливается в -1) прежде, чем любые байты читаются из содержавшего входного потока.

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

22.13.5 public void unread(int b) throws IOException

Если pushBack не -1, IOException бросается (не разрешается пододвинуть больше чем один байт обратно). Иначе, значение байта b пододвигается обратно, присваиваясь b к pushBack.

22.13.6 public int available() throws IOException

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

Этот метод первые вызовы available метод содержавшего входного потока. Если pushBack -1, результат возвращается; иначе, результат плюс 1 возвращается.

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

22.13.7 public boolean markSupported()

Этот метод возвраты false (a PushbackInputStream не поддерживает mark).


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

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



Spec-Zone.ru - all specs in one place



free hit counter