小石头课堂(三)IO流总结

小石头课堂(三)IO流总结

   最近学了java  IO流 是个比较绕的东西,有时候很难理清它的头绪,即使当时清楚了,过一段时间后也会忘记,因此记录下来IO流中常用的几个类,以供大家参考,及本人以后复习。嗯 闲话少叙,下面开始:

其实、很多资料上写java流分为字节流和字符流,虽然可以方便理解与记忆但是本人觉得那是很无聊的分类,因为计算机的输入输出的一切操作都是转化为字节,再转换成二进制,所以我认为那样的分类反而会误导一些初学者。(也可能是我还没深入理解所谓专家们分类依据)。而我认为更好的分类应该是下面这样的:

一、节点流

包括InputStream/OutputStream最常用的是其实现类: FileInputStream/FileOutputStream(fis/fos)。这个类直接与文件(File)连接,可以一个字节的读写,也可以自定义byte[] 数组用来缓冲,多个字节的读写 eg:

 

                             

 

 

二、  处理流

处理流需要套在节点流上(除了fr/fw)包括:

DataInputStream/DataOutputStream(dis/dos)

InputStreamReader/OutputStreamWriter(isr/osw)

FileReader/FileWriter(fr/fw)

ObjectInputStream/ObjectOutputStream(ois/oos)

 

 

 

 

 

 

dis是读java基本数据类型的,它内部会根据调用的方法自动读取相应个字节的二进制数据,并转换成要读的数据类型。

Isr是读取文本文件时进行字符与字节的转换的,将二进制数据按照指定的编码 转换成相应字符。因此也必须套在节点流并且传入指定编码(默认是本地机器的编码方案)。

 

 

Fr则是为了方便读取字符,专门设计的,相当于isr+fis,因此不用套在节点流上,可以直接连接file,但它这样就不能指定编码了,只能用默认的编码方案。

 

Oos则是读取对象时用的 同样用法,套在节点流上,(注意对象需要序列化,且注意类型转换)

 

 

 

三、  缓冲流

缓冲流需要套在节点流上,但一般都是套在处理流上。

BufferedInputStream/ BufferedOutputStream(bis/bos)—》字节

BufferedReader/BufferedWriter(br/bw)—》字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文件读写经典模式:

Bis--fis,必要时bis—dis—fis。

(指定编码)Br—isr—fis  (不用指定编码)br—fr

 

以上只是我学习时根据自己的理解总结的一些,有些理解不太准确,各个类型的类也不全面,但记住这些并且熟练应用,相信一般的文件操作应该难不住你了,

学的太多反而会更蒙,不好  。若非要学全就自己去查看api吧 。还是那句话:觉得有用呢就赞一下,加我QQ  共同学习!!!

 

 

 

 

 

 

 

 

本文提供者:怀念@那片蓝 QQ448661040

 

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从来不用昵称

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值