关于字节数组的流对象介绍和案例分析




import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;


/*用于操作字节数组的流对象
 * ByteArrayInputStream:在构造的时候需要接收数据源,因而数据源是一个字节数组
 * ByteArrayOutputStream:在构造是时候,不用定义数据目的,
 * 因为该对象中已经内部封装了可变长度的字节数组,这就是数据目的地
 * 因为这两个流对象都操作的数组,并没有使用系统资源,所以不用进行close关闭。
 * 
 * 
 * 在流操作中:
 * 源设备:键盘system.in 硬盘 FileStream, 内存 ArrayStream
 * 目的设备:控制台system.out 硬盘 FileStream, 内存 ArrayStream
 * 
 * 用流的读写思想来操作数组
 * 相似用法的类有:
 * 操作字符数组:CharArrayReader和 CharArrayWriter
操作字符串:StringReader和StringWriter
 */
public class ByteArrayStream {
public static void main(String[] args) {
//源和目的都在内存中
//数据源(把数据源改变一些就可以输入想要的数据源类型)
ByteArrayInputStream bis=new ByteArrayInputStream("ASDFDF".getBytes());
//明确数据目的
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int by=0;
while ((by=bis.read())!=-1) {
bos.write(by);
}
// 将此 byte 数组输出流的全部内容写入到指定的输出流参数中
try {
bos.writeTo(new FileOutputStream("a.txt"));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(bos.size());
System.out.println(bos.toString());
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值