/*
ByteArrayStream用于操作字节数组的流对象
ByteArrayInputStream : 在构造的时候,需要接收数据源,而且数据源是一个字节数组。
ByteArrayOutputStream : 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
这就是数据目的地。
因为这两个流对象都操作的数组,并没有使用系统资源,所以,不用进行close关闭。 不会发生IO异常
在流操作规律讲解时:
原设备:
键盘 System.in ,硬盘 FileStream,内存 ByteStream
目的设备
控制台 System.out ,硬盘 FileStream,内存ByteStream,
用流的读写思想来操作数据
*/
import java.io.*;
class ByteArrayStream
{
public static void main(String[] args)
{
//数据源
ByteArrayInputStream bis = new ByteArrayInputStream("ABCDEFG".getBytes());//getBytes()是将一个字符串转化为一个字节数组
//数据目的
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int by = 0;
while ((by = bis.read())!=-1)//判断没到结尾,因为bis本身内置了数组,所以参数里面就不用加数组了
{
bos.write(by);
}
System.out.println(bos.size());//打印size()缓冲区大小
System.out.println(bos.toString());//打印size()缓冲区大小
//bos.writeTo(new FileOutputStream("a.txt"));
/*
void writeTo(OutputStream out)
将此 byte 数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。
*/
}
}
ByteArrayStream用于操作字节数组的流对象
最新推荐文章于 2024-06-30 10:00:00 发布