本文共 1076 字,大约阅读时间需要 3 分钟。
/*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 方法效果一样。 */ }}
转载地址:http://uzzvb.baihongyu.com/