Javaweb---IO流(2)

流:

像水流一样 一次可以读/写一个字节 读/写两个字节等
File中少了两个核心操作:读 & 写
常见的IO操作(红色方框标记的):
在这里插入图片描述
字节:操作的基本单元是字节
字符:操作的基本单元是unicode码元
文本文件: 用记事本打开是文本类型
二进制文件: 用记事本打开的类型看不懂
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件描述符表是有上限的 也是可配置的
拷贝文件的操作:
在这里插入图片描述
这个版本存在的问题:
1.当程序在read/write/new的时候触发异常 程序执行不到下面的close仍然会造成资源泄漏
修改措施:程序必须执行到close() 加上finally语句
2.当加上finally语句的时候还是存在一个问题 如果构造这个对象的时候路径对应的文件不存在 那么此时put和out就是null 这个时候向下执行close会引起空指针异常
修改措施: 程序加上If()语句判断

由于try catch和if的循环相互嵌套非常丑 可能会引起bug所以对程序又进行了改进
修改后的程序:
(IO流本身就实现了Closable接口所以无需担心)
在这里插入图片描述

缓冲区:(提高程序的效率)

由于IO操作涉及到一系列上磁盘的访问,因此IO次数越多,整体程序的效率就非常低。
BufferInputStream;
BufferOutputStream: 就内置了缓冲区
在这里插入图片描述
在read/write程序同样会因为异常直接返回 无法执行到下面的close()操作
修改版:
在这里插入图片描述
带缓冲区
在这里插入图片描述
不带缓冲区
在这里插入图片描述
经比较:带缓冲区比不带缓冲区效率高了很多(我的电脑上快了100倍) 在内存上跑真是爽
在这里插入图片描述

字符流字节流:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值