Академический Документы
Профессиональный Документы
Культура Документы
ByteArrayOutputStream
java.io
Класс ByteArrayInputStream
java.lang.Object
java.io.InputStream
java.io.ByteArrayInputStream
ByteArrayInputStream содержит внутренний буфер, который содержит байты, которые могут быть прочитаны из
потока. Внутренний счетчик отслеживает следующий байт, предоставляемый методом read .
Закрытие ByteArrayInputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Модификатор и Тип Поле и описание
Индекс на единицу больше, чем последний действительный символ в буфере входного потока.
Конструктор и описание
ByteArrayInputStream (byte[] buf)
int available ()
Возвращает количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого
входного потока.
void close ()
Закрытие ByteArrayInputStream не имеет никакого эффекта.
boolean markSupported ()
int read ()
void reset ()
long skip (long n)
Детали поля
buf
protected byte[] buf
Массив байтов, предоставленный создателем потока. Элементы buf[0] buf[count-1] являются единственными байтами,
которые когда-либо могут быть прочитаны из потока; Элемент buf[pos] - следующий байт для чтения.
pos
protected int pos
Индекс следующего символа для чтения из буфера входного потока. Это значение всегда должно быть неотрицательным
и не больше значения count . Следующий байт для чтения из буфера входного потока будет buf[pos] .
mark
protected int mark
Текущая отмеченная позиция в потоке. Объекты ByteArrayInputStream помечаются в нулевой позиции по умолчанию
при построении. Они могут быть помечены в другой позиции в буфере методом mark() . Текущая позиция буфера
устанавливается в эту точку методом reset() .
Если никакой метки не было установлено, то значение метки - это смещение, переданное конструктору (или 0, если
смещение не было предоставлено).
count
protected int count
Индекс на единицу больше, чем последний действительный символ в буфере входного потока. Это значение всегда
должно быть неотрицательным и не превышать длину buf . Это на единицу больше, чем позиция последнего байта
в buf который может быть прочитан из буфера входного потока.
Детали конструктора
public ByteArrayInputStream (byte [] buf)
Создает ByteArrayInputStream чтобы он использовал buf качестве своего буферного массива. Буферный массив не
копируется. Начальное значение pos равно 0 а начальное значение count является длиной buf .
Параметры: buf - входной буфер.
public ByteArrayInputStream(byte[] buf,
int offset,
int length)
Создает ByteArrayInputStream который использует buf качестве своего буферного массива. Начальное
значение pos является offset а начальное значение count является минимальным
значением offset+length и buf.length . Буферный массив не копируется. Метка буфера устанавливается на указанное
смещение.
Параметры: buf - входной буфер.
offset - смещение в буфере первого байта для чтения.
length - максимальное количество байтов для чтения из буфера.
Методы
read
public int read()
Читает следующий байт данных из этого входного потока. Байт значения возвращается как int в диапазоне
от 0 до 255 . Если байт недоступен из-за достижения конца потока, возвращается значение -1 .
Этот метод read не может заблокировать.
Возвращает: следующий байт данных или -1 если достигнут конец потока.
read
public int read(byte[] b,
int off,
int len)
Считывает до байтов данных в массив байтов из этого входного потока. Если pos равно count , то -1 возвращается, чтобы
указать конец файла. В противном случае число прочитанных байтов равно меньшему из len и count-
pos . Если k положительно, то байты buf[pos] через buf[pos+k-1] копируются в b[off] через b[off+k-1] способом,
выполняемым System.arraycopy . Значение k добавляется в pos а k возвращается.
Этот метод read не может заблокировать.
Параметры: b - буфер, в который считываются данные.
off - начальное смещение в массиве назначения b
len - максимальное количество прочитанных байтов.
Возвращает: общее число байтов, считанных в буфер, или -1 если данных больше нет, поскольку достигнут конец
потока.
Броски: NullPointerException - Если b является null .
IndexOutOfBoundsException - если off отрицательный, len отрицательный, или len больше, чем b.length - off
skip
public long skip(long n)
Пропускает n байтов ввода из этого потока ввода. Меньшее количество байтов может быть пропущено, если достигнут
конец входного потока. Фактическое число k байтов, которые нужно пропустить, равно меньшему из n и count-
pos . Значение k добавляется в pos а k возвращается.
Параметры: n - количество пропущенных байтов.
Возвращает: фактическое количество пропущенных байтов.
available
public int available()
Возвращает количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого входного потока.
Возвращаемым значением является count - pos , которое представляет собой количество байтов, оставшихся для чтения
из входного буфера.
Возвращает: количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого входного
потока без блокировки.
markSupported
public boolean markSupported()
Проверяет, поддерживает ли этот InputStream метку / сброс. Метод markSupported объекта ByteArrayInputStream всегда
возвращает true .
Возвращает: true если этот экземпляр потока поддерживает методы mark и reset; false противном случае.
mark
public void mark(int readAheadLimit)
Установите текущую отмеченную позицию в потоке. Объекты ByteArrayInputStream помечаются в нулевой позиции по
умолчанию при построении. Этим методом они могут быть помечены в другом месте в буфере.
Если метка не была установлена, то значением метки является смещение, переданное конструктору (или 0, если
смещение не было предоставлено).
Примечание: readAheadLimit для этого класса не имеет смысла.
Параметры: readAheadLimit - максимальный лимит байтов, который может быть прочитан до того, как позиция метки
станет недействительной.
reset
public void reset()
Сбрасывает буфер в отмеченную позицию. Помеченная позиция равна 0, если в конструкторе не была отмечена другая
позиция или не было указано смещение.
close
public void close()
throws IOException
Закрытие ByteArrayInputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Броски:IOException - если ошибка ввода-вывода происходит.
java.io
Класс ByteArrayOutputStream
java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
Сводка по полю
поля
Сводка конструктора
Конструкторы
Конструктор и описание
ByteArrayOutputStream ()
ByteArrayOutputStream (int size)
Создает новый выходной поток массива байтов с емкостью буфера указанного размера в байтах.
методы
void close ()
void reset ()
Сбрасывает поле count этого выходного потока массива байтов в ноль, так что все накопленные в
данный момент выходные данные в выходном потоке отбрасываются.
int size ()
byte[] toByteArray ()
String toString ()
Устаревшее.
String toString ( String charsetName)
void write (int b)
void writeTo ( OutputStream out)
Записывает полное содержимое этого выходного потока массива байтов в указанный аргумент
выходного потока, как если бы вызывал метод записи выходного потока, используя out.write(buf,
0, count) .
Резюме метода
buf
protected byte[] buf
Буфер, в котором хранятся данные.
count
protected int count
Количество действительных байтов в буфере.
Детали конструктора
ByteArrayOutputStream
public ByteArrayOutputStream ()
Создает новый поток вывода массива байтов. Первоначально емкость буфера составляет 32 байта, хотя при
необходимости его размер увеличивается.
ByteArrayOutputStream
public ByteArrayOutputStream (int size)
Создает новый выходной поток массива байтов с емкостью буфера указанного размера в байтах.
Параметры:size - начальный размер.
Броски:IllegalArgumentException - если размер отрицателен.
Методы
write
public void write(int b)
Записывает указанный байт в этот поток вывода массива байтов.
Параметры:b - байт для записи.
write
public void write(byte[] b,
int off,
int len)
Записывает len байтов из указанного массива байтов, начиная со смещения, в этот поток вывода массива байтов.
Параметры: b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
writeTo
public void writeTo(OutputStream out)
throws IOException
Записывает полное содержимое этого выходного потока массива байтов в указанный аргумент выходного потока, как
если бы вызывал метод записи выходного потока, используя out.write(buf, 0, count) .
Параметры: out - выходной поток для записи данных.
Броски: IOException - если ошибка ввода-вывода происходит.
reset
public void reset()
Сбрасывает поле count этого выходного потока массива байтов в ноль, так что все накопленные в данный момент
выходные данные в выходном потоке отбрасываются. Выходной поток можно использовать снова, повторно используя
уже выделенное буферное пространство.
toByteArray
public byte[] toByteArray()
Создает вновь выделенный байтовый массив. Его размер является текущим размером этого выходного потока, и в него
было скопировано допустимое содержимое буфера.
Возвращает: текущее содержимое этого выходного потока в виде байтового массива.
size
public int size()
Возвращает текущий размер буфера.
Возвращает: значение поля count , которое является количеством действительных байтов в этом выходном потоке.
toString
public String toString()
Преобразует содержимое буфера в байты декодирования строки, используя набор символов платформы по
умолчанию. Длина новой строки является функцией набора символов и, следовательно, не может быть равна размеру
буфера.
Этот метод всегда заменяет последовательности некорректного ввода и не отображаемых символов строкой замены по
умолчанию для набора символов платформы по умолчанию. Класс CharsetDecoder следует использовать, когда
требуется больший контроль над процессом декодирования.
Возвращает: Строка, расшифрованная из содержимого буфера.
toString
public String toString(String charsetName)
throws UnsupportedEncodingException
Преобразует содержимое буфера в строку путем декодирования байтов с использованием
указанного charsetName . Длина новой строки является функцией набора символов и, следовательно, не может быть
равна длине байтового массива.
Этот метод всегда заменяет последовательности некорректного ввода и не отображаемых символов строкой замены
этого набора символов по умолчанию. Класс CharsetDecoder следует использовать, когда требуется больший контроль
над процессом декодирования.
Параметры: charsetName - имя поддерживаемой кодировки
Возвращает: Строка, расшифрованная из содержимого буфера.
Броски: UnsupportedEncodingException - Если названная кодировка не поддерживается
close
public void close()
throws IOException
Закрытие ByteArrayOutputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Заменяет: close в классе OutputStream
Броски: IOException - если ошибка ввода-вывода происходит.