IO流实例详解

IO

一、IO流简介

01.流的概念和作用

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的的总称或抽象。即数据在两设备之间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

02.Io流的分类

根据处理数据类型的不同分为:字符流和字节流

字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的对象。本质其实就是基于字节流读取时,去查了指定的码表。

字节流和字符流的区别:

1) 读写单位不同:字节流以字节8bit为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

2) 处理对象不同:字节流 处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据

3) 字节流:一次读入或读出是8为二进制

4) 字符流:一次读入或读出是16位二进制

设备上的数据无论是图片或者视屏,文字,它们都是以二进制存储的。二进制的最终都是以一个8为为数据单元进行体现,所以计算机中最小的数据单元就是字节。意味着,字节流可以处理设备上的所又数据,所以字节流一样可以处理字符数据。

结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流

 

根具数据流向不同分为:输入流和输出流。

输入流只能进行读操作,输出流只能进行写操作,程序中需要根据传输数据的不同特性而使用不同的流。

 

二、使用File操作文本文件

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

 

三、读写文本文件

01.字节输入流InputStream

 

02.字符输入流Reader

 

03.字符缓存流BufferedReader

BufferedReader类是Reader类一个子类,它与FileReader类的区别在于,BufferedReader类带有缓存区,它可以先把一批数据读到缓存区接下来的读取操作都是从缓存中读取数据,避免每次都从数据源读取数据进行字符编码转换,从而提高读取操作的效率。

 

04.字节输出流OutputStream

 

05.字符输出流Writer

 

06.字符缓存区BufferedWriter

 

四、进制文件的读写

DataInputStreamFileInputStream的子类,继承与DataInput

DataOutputStreamFileOutputStream的子类,继承与DataOutput

01.读写.class文件

 

 

五、序列化与反序列化

01.ObjectOutputStream

 

02.ObjectInputStream

 

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值