IO流

文件流:

FileInputStream / FileOutputStream / FileReader / FileWriter

缓冲流:

BufferedInputStream / BuffereOutputStream / BufferedReader / BufferedWriter

转换流

InputStreamReader  /  OutputStreamWriter

File类

1.File 是一个类,可以有构造器创建其对象。此对象对应着一个文件(比如:.txt,.avi,.doc....)

2.File对象是与平台无关的

3.File中的方法只涉及文件如何删除,创建,重命名等等。若涉及文件内容与file无关,必须由io流来完成。

4.File类的对象常常作为io流的具体类的构造器的形参。

 

基本操作:

 

io流分类:

1.操作数据单位:字节流和字符流

2.根据流向不同:输入流(inputstream,reader..)和输出流(outputstream,writer) (操作都是以内存为参照对象,输入流就是从外面磁盘往内存输入,输出流就是从内存往外面的磁盘输出)

3.按照流的角色:节点流(inputstream,Filereader,ouputStream,writer)和处理流(对节点流进行一次封装的流 比如:缓冲流BuffereReader等)

抽象基类字节流字符流
输入流InputStreamreader
输出流OutputStreamwriter

另外容易搞蒙一个处理流叫转换流:就是把字节流转化为字符流,就两个(InputStreamReader,OutputStreamWriter)。

还有一个对象流:ObjectInputStream,ObjectOutputStream

 

输入流例子:

输出流例子:

 

 

 

输入流和输出流共同使用的一个应用例子:copy文件公用方法。

 

 

 

字符流(reader,writer)和字节流方法属性一样,只能对文本文件进行操作,对音频,视频,图片操作需要用字节流。例子如下:

 

缓存流(BufferedinputStream,BufferedOutputStream),用缓存流时读取速度较快

 

 

字符流的缓存流例子:

 

一般我们开发都是用缓存流,可提升文件操作效率。

 

转换流:InputStreamReader 和 OutputStreamWriter

 

字节流-->字符流 用 InputStreamReader   解码:字节编码-->字符串

字符流-->字节流  用 OutputStreamWriter  编码:字符串-->字节编码   

 

对象流:ObjectInputStream和ObjectOutputStream

用于存储和读取对象的处理流,可以把java对象写入到数据源中,也可以从数据源中还原为原对象。

序列化:用ObjectOutputStream类将一个对象写入io流中

反序列化:用ObjectInputStream类从IO流中恢复原对象。

对象流不能序列化static和transient修饰的成员变量

序列化例子:

 

 

 

反序列化例子:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值