Spec-Zone .ru
спецификации, руководства, описания, API
|
java.io.ByteArrayOutputStream
ByteArrayOutputStream
содержит внутренний буфер, который накапливает все байты, записанные потоку начиная с его создания или нового звонка reset
метод. В любой точке байты, записанные потоку до сих пор, могут получаться в форме массива байтов или a String
. Байты, записанные до сих пор, могут также копироваться в некоторый другой поток вывода. size
метод возвращает число символов, записанных до сих пор. public classByteArrayOutputStream
extends OutputStream { protected byte[]buf
; protected intcount
; publicByteArrayOutputStream
(); publicByteArrayOutputStream
(int size); public voidwrite
(int b); public voidwrite
(byte[] b, int off, int len) throws NullPointerException, IndexOutOfBoundsException; public intsize
(); public voidreset
(); public byte[]toByteArray
(); public StringtoString
(); public StringtoString
(int hibyte); public voidwriteTo
(OutputStream out) throws IOException; }
22.18.1 protected byte[]
buf
;
Внутренний массив байтов. Элементы buf[0]
через buf[count-1]
байты, которые были записаны потоку начиная с его создания или последнего reset
(§22.18.8) работа.
22.18.2 protected int
count
;
Это значение должно всегда быть неотрицательным. Это - число байтов, которые были записаны потоку начиная с его создания или последнего reset
(§22.18.8) работа.
22.18.3 public
ByteArrayOutputStream
()
Этот конструктор инициализирует недавно создаваемый ByteArrayOutputStream
так, чтобы у его внутреннего буферного массива была длина 32.
22.18.4 public
ByteArrayOutputStream
(int size)
Этот конструктор инициализирует недавно создаваемый ByteArrayOutputStream
так, чтобы у его внутреннего буферного массива была длина size
. Это имеет значение только по причинам эффективности; буферный массив заменяется большим всякий раз, когда необходимый, чтобы разместить дополнительные байты, записанные потоку.
22.18.5 public void
write
(int b)
Один байт добавляется на внутреннем буфере. Байт, который будет добавлен, является восемью младшими разрядами - биты параметра n
. 24 бита старшего разряда n
игнорируются.
Реализации write
метод OutputStream
(§22.15.1).
22.18.6 public void
write
(byte[] b, int off, int len)
throws NullPointerException, IndexOutOfBoundsException
Элементы b[off]
через b[off+len-1]
добавляются к внутреннему буферу.
Если b
null
, a NullPointerException
бросается.
Если off
отрицательно, или len
отрицательно, или off+len
больше чем длина массива b
, тогда IndexOutOfBoundsException
бросается.
Переопределения write
метод OutputStream
(§22.15.3).
22.18.7 public int
size
()
Текущая стоимость count
возвращается.
22.18.8 public void
reset
()
Внутренняя переменная count
сбрасывается, чтобы обнулить, таким образом логически отбрасывая все байты, записанные потоку до сих пор. Однако, внутренний буферный массив, который может быть довольно многочисленным, остается, как это.
22.18.9 public byte[]
toByteArray
()
Новый массив байтов создается и возвращается. Его длина равна текущей стоимости count
. Его начальное содержание является копиями байтов, записанных потоку до сих пор - то есть, элементы 0
через count-1
из buf
.
22.18.10 public String
toString
()
Новое String
создается и возвращается. Его длина равна текущей стоимости count
. Его начальное содержание является копиями байтов, записанных потоку до сих пор - то есть, элементы 0
через count-1
из buf
, расширенный до нуля, чтобы произвести символы. Таким образом, tostring()
имеет тот же самый эффект как toString(0)
(§22.18.11).
Переопределения toString
метод Object
(§20.1.2).
22.18.11 public String
toString
(int hibyte)
Новый массив байтов создается и возвращается. Его длина равна текущей стоимости count
. Его начальное содержание является копиями байтов, записанных потоку до сих пор - то есть, элементы 0
через count-1
из buf
- с hibyte
предоставление старшего разряда восемь битов каждого символа. Таким образом, символ k
из результата равно:
((hibyte & 0xff) << 8) | (buf[k] & 0xff)См.
String
конструктор, который принимает a hibyte
параметр (§20.12.6).22.18.12 public void
writeTo
(OutputStream out) throws IOException
Текущее содержание внутреннего буфера пишется потоку вывода out
вызовом:
out.write(buf, 0, count)Отметьте это если
out
то же самое как this
, эффект состоит в том, чтобы просто добавить к буферу копию своего текущего содержания, таким образом удваивая число буферизованных байтов. Это, возможно, не особенно полезное действие; точка просто, который работа действительно завершает, имея заметный эффект, вместо того, чтобы убежать в бесконечный цикл.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com