3.16 io流知识

什么是IO流?

IO流就是以流的方式进行输入输出
主要用来处理设备之间的传输,文件的上传,下载和复制
流分输入和输出,输入流从文件中读取数据存储到进程中,输出流从进程中读取数据然后写入到目标文件。

字节流的父类是:InputStream,OutputStream
字符流的父类是:Reader,Writer

字节流操作的基本单元为字节(8bit),可以通过字节操作所有数据;字符流操作的基本单元为Unicode码元,只能处理字符类 数据。
字节流默认不使用缓冲区;字符流使用缓冲区。
字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。
 

OutputStream里的write(byte b[], int off, int len)这个方法

write将指定字节传入数据源
Byte b[ ]是byte数组,b[off]是传入的第一个字符,我的理解就是数组的下标,b[off+len-1]是传入的最后的一个字符 ,len是数组的实际长度

流一旦打开就必须关闭,要使用close方法关闭,一般放在finally语句块中(finally 语句一定会执行)执行。多个流互相调用只关闭最外层的流即可。

I/O传输过程中的阻塞问题,传输时间长,访问磁盘次数过多。

通常提升磁盘I/O性能的方法有:

1:增加缓存,减少磁盘访问次数

2:优化磁盘的管理系统,设计最优的磁盘方式策略。这是在底层操作系统层面考虑的。

3:设计合理的磁盘存储数据块,以及访问这些数据块的策略。这是在应用层考虑的。可以给存放的数据设计索引,通过寻址输索引来加快和减少磁盘的访问量,还可以使用异步和非阻塞的方式加快磁盘的访问次数。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值