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

22.10 Класс java.io.BufferedInputStream

A BufferedInputStream добавляет функциональность к другому входному потоку а именно, возможность буферизовать ввод и поддерживать mark и reset методы. Когда BufferedInputStream создается, внутренний буферный массив создается. Поскольку байты от потока читаются или пропускаются, внутренний буфер снова наполняется по мере необходимости от содержавшего входного потока, много байтов за один раз. mark работа помнит точку во входном потоке и reset работа вызывает все чтение байтов начиная с нового mark работа, которая будет перечитана перед новыми байтами, берется от содержавшего входного потока.

public class BufferedInputStream extends FilterInputStream {
	protected byte[] buf;
	protected int count = 0;
	protected int pos = 0;
	protected int markpos = -1;
	protected int marklimit = 0;
	public BufferedInputStream(InputStream in);
	public BufferedInputStream(InputStream in, int size);
	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 boolean markSupported();
}

22.10.1 protected byte[] buf;

Внутренний буферный массив. Когда необходимо это может быть заменено другим массивом различного размера.

22.10.2 protected int count = 0;

Это значение всегда находится в диапазоне 0 через buf.length; элементы buf[0] через buf[count-1] содержите буферизованные входные данные, полученные из базового входного потока.

22.10.3 protected int pos = 0;

Это значение всегда находится в диапазоне 0 через count. Если это - меньше чем count, тогда buf[pos] следующий байт, который будет предоставлен как входной; если это равно count, тогда следующее read или skip работа потребует, чтобы больше байтов было считано из содержавшего входного потока.

22.10.4 protected int markpos = -1;

Это значение всегда находится в диапазоне -1 через pos. Если нет никакой отмеченной позиции во входном потоке, это поле -1. Если есть отмеченная позиция во входном потоке, то buf[markpos] первый байт, который будет предоставлен как входной после a reset работа. Если markpos не -1, тогда все байты от позиций buf[markpos] через buf[pos-1] должен остаться в буферном массиве (хотя они могут быть перемещены в другое место в буферном массиве с подходящими корректировками значений count, pos, и markpos); они не могут быть отброшены только после того как различие между pos и markpos превышает marklimit.

22.10.5 protected int marklimit;

Всякий раз, когда различие между pos и markpos превышает marklimit, тогда метка может быть отброшена, устанавливая markpos к -1.

22.10.6 public BufferedInputStream(InputStream in)

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

22.10.7 public BufferedInputStream(InputStream in, int size)

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

22.10.8 public int read() throws IOException

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

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

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

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

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

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

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

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

22.10.11 public long skip(long n) throws IOException

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

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

22.10.12 public int available() throws IOException

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

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

22.10.13 public void mark(int readlimit)

Поле marklimit устанавливается равный параметру и markpos устанавливается равный pos

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

22.10.14 public void reset() throws IOException

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

Если markpos -1 (никакая метка не была установлена, или метка была лишена законной силы), IOException бросается. Иначе, pos устанавливается равный markpos.

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

22.10.15 public boolean markSupported()

Этот метод возвраты true (a BufferedInputStream всегда поддерживает mark).

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


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

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

free hit counter