java的IO流

开发工具与关键技术:Eclipse   与   java
作者:蔡杰明
撰写时间:2021  年 06  月 16 日

IO流:IO流就是输入输出流的简称
输入:InputStreamReader 输出:OutputStreamWriter

1、输入流和输出流【输入、输出是从程序运行所在内存的角度划分】
-输入流:从中只能读取数据,不能向其写入数据【由InputStream 和 Reader 作为基类】
-输出流:只能向其写入数据,不能从中读取数据【由OutputStream 和 Writer作为基类】

2、字节流 和 字符流【字节流和字符流用法几乎完全一样,操作的数据单元不同】
-字节流 :数据单元为8位的字节,由InputStream 和OutputStream 作为基类【byte】
-字符流 :数据单元为16位的字符,由Reader和 Writer作为基类【char】

3、字节流 和 处理流【流的角色】

  • 字节流:从向一个特定的IO设备(磁盘、网络)读/写数据的流【具体的文件、网络设备】
    一个具体的节点而来
  • 处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能
    使用处理流的优势:1、处理流进行输入/输出操作简单 2、处理流的执行效率高
    输入流:InputStreamReader
    在这里插入图片描述

转换流:InputStreamReader 和 OutputStreamWriter作用 :把字节流转换为字符流
-没有字符流转为字节流
-对于字符串,字符流比字节流好【字节流需要转为字符流】
-字节复杂,字符简单
-字符有时无法更改底层它进行转换的编码

Reader是GBK,而我们的工作空间是UTF-8,reader默认是UTF-8去读取,会乱码
创建文件时UTF-8,要进行GBK转换为UTF-8,乱码就变文字

输出:OutputStreamWriter

OutputStreamWriter转换流两个作用:
1、封装字节流
2、通过装换流能指定字符流转换编码格式【字符流只会默认的读取当前工作空间的编码格式】
在这里插入图片描述

缓冲流:BufferedStream
1、在读写数据时,让数据在缓冲区能减少系统实际对原始数据来源的存取次数,一次能做多个数据单位的操作
2、对于直接从文件读取数据或将数据写入文件,比起缓冲区的读写要慢多了
3、使用缓冲区的流,一般都会比没有缓冲区的流效率更高
4、拥有缓冲区的流称为缓冲流
BufferedStream、BufferedOutputStream类
BufferedReader、BufferedWriter类
缓冲流把数据从原始流块读入或把数据基类到一个大数据块后在成批写出
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值