/*
ByteArrayStream:
用于操作字节数组的流对象。
ByteArrayInputstream:在构造的时候,需要接受数据源,而且数据源是一个字节数组。
ByteArrayOutputStream:在构造的时候,不需要定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
这就是数据目的地。
因为这两个流对象都操作数组,并没有使用系统资源。
所以不用进行close关闭。
在流操作规律讲解时:
源设备:
键盘 System.in,硬盘 FileStream,内存 ArrayStream。
目的设备:
控制台 System.out,硬盘 FileStream,内存 ArrayStream。
用流的读写思想来操作数据。
*/
class IO{
public static void main(String[] args) {
//数据源
ByteArrayInputStream bis = new ByteArrayInputStream("ABC".getBytes());//数据源可是文件
//源和目的都是内存
//数据目的
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//读写
int ch = 0;
while((ch = bis.read()) != -1){
bos.write(ch);
}
System.out.println(bos.size());//打印缓冲区大小
System.out.println(bos.toString());//打印缓冲区大小
//bos.writeTo(new FileOutputStream("a.txt"));
}
}