Нам необходимо знать, что помимо файлов источником и назначением потока также может быть память компьютера.
Входной поток массива байтов ByteArrayInputStream и выходной поток массива байтов ByteArrayOutputStream используют массивы байтов в качестве источника и назначения потока соответственно.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
Источником потока массива байтов, созданного первым конструктором, являются все байтовые единицы массива, заданные параметром buf; источником потока массива байтов, созданного вторым конструктором, является массив, указанный buf, взятый в порядке от смещения. длина байтовых единиц.
Входной поток массива байтов вызывает public int read(); метод может последовательно читать байт из источника, и метод возвращает значение прочитанного байта; метод public int read(byte[] b,int off,int len ); может последовательно прочитать количество байтов, указанное параметром len, из источника и сохранить прочитанные байты в массив, указанный параметром b. Параметр off указывает начальную позицию массива b для хранения прочитанных байтов. Этот метод возвращает фактическое число. прочитанных байтов. Если ни один байт не был прочитан, метод чтения возвращает -1.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
Выходной поток массива байтов, созданный первым конструктором, указывает на буфер с размером по умолчанию 32 байта. Если количество байтов, записанных выходным потоком в буфер, больше, чем буфер, емкость буфера автоматически увеличится.
Начальный размер буфера, на который указывает выходной поток массива байтов, созданный вторым конструктором, определяется размером параметра. Если количество байтов, записываемых выходным потоком в буфер, больше, чем буфер, емкость буфера автоматически увеличивается. увеличивать.
Выходной поток массива байтов вызывает public void write(int b); метод может последовательно записывать байт в буфер; метод вызывает public void write(byte[] b, int off, int len); in Указанные байты len записываются в буфер последовательно, а параметр off указывает начальную позицию байтов, записанных из b; вызов метода public byte[] toByteArray(); может вернуть все выходные потоки, записанные в буфер. .
Потоку массива байтов соответствуют класс потока массива символов CharArrayReader и класс CharArrayWriter. Поток массива символов использует массивы символов в качестве источника и назначения потока соответственно.
Например, используйте поток массива для записи «Праздника середины осени» и «Счастливого праздника середины осени» в память (буфер выходного потока), а затем прочитайте записанные данные из памяти:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.getBytes();outByte.write(byteContent);ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toBy) teArray ());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);System.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=Mid -Осенний фестиваль Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System .out.println(newString(backChar));}catch(IOExceptionexp){}}}