操作字节数组的流对象:
ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源是一个字节数组。
ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象内部已经封装了可变长度的字节数组。这就是数据目的地
close():因为这两个流对象操作的数组,并没有使用系统资源。所以不用进行close关闭流。
在流操作规律讲解:
● 源设备:
键盘System.in
硬盘FileStream
内存ArrayStream
● 目的设备:
控制台System.out
硬盘FileStream
内存ArrayStream
字符数组:
CharArrayInputStream
CharArrayOutputStream
字符串数组:
StringArrayInputStream
StringArrayOutputStream
例:
package cn.itcast.io.p7.bytestream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class ByteArrayStreamDemo { public static void main(String[] args) { //数据源 ByteArrayInputStream bis = new ByteArrayInputStream("不争不辩 不闻不见".getBytes()); //数据目的地 ByteArrayOutputStream bos = new ByteArrayOutputStream(); int ch = 0; while((ch = bis.read()) != -1){ bos.write(ch); } System.out.println(bos.toString()); } }