黑马程序员技术交流社区
标题:
关于内存操作流
[打印本页]
作者:
贾存双
时间:
2012-7-23 12:53
标题:
关于内存操作流
ByteArrarInputStream是将数据写入到内存还是将数据从内存中读取出来?这点我有点迷糊...
读取的源以一个byte数组,那么读取的应该是byte数组中的内容,而不是读取的ByteArrayOutputStream.write()写入到内存中的数据,我想问可不可以直接读取ByteArrayOutputStream.write()写入到内存中的数据?如果不能读取,那么ByteArrarInputStream和ByteArrayOutputStream还有什么联系。
作者:
康大玮
时间:
2012-7-23 12:57
/*
用于操作字节数组的流对象。
ByteArrayInputStream :在构造的时候,需要接收数据源,。而且数据源是一个字节数组。
ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
这就是数据目的地。
因为这两个流对象都操作的数组,并没有使用系统资源。
所以,不用进行close关闭。
在流操作规律讲解时:
源设备,
键盘 System.in,硬盘 FileStream,内存 ArrayStream。
目的设备:
控制台 System.out,硬盘FileStream,内存 ArrayStream。
用流的读写思想来操作数据。
*/
import java.io.*;
class ByteArrayStream
{
public static void main(String[] args)
{
//数据源。
ByteArrayInputStream bis = new ByteArrayInputStream("ABCDEFD".getBytes());
//数据目的
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int by = 0;
while((by=bis.read())!=-1)
{
bos.write(by);
}
System.out.println(bos.size());
System.out.println(bos.toString());
// bos.writeTo(new FileOutputStream("a.txt"));
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2