(黑马程序员)IO流体系选用总结

IO流有很多,大体可以有以下常用

字节流:

InputStream  

FileInputStream 

FileOutputStream

BufferedInputStream

BufferedOutputStream

System.in    system.out

字符流:

Writer 

Reader

FileReader

FileWriter

BufferedReader

BufferedWriter

转换流:

InputStreamReader :字节到字符的桥梁。解码。字节流对象读取到字符流

OutputStreamWriter:字符到字节的桥梁。编码。字符流对象写到字节流

流的操作规律:

因为流对象太多,开发时不知道用哪个对象合适,所以要弄清楚这个规律。

想要知道开发时用到哪些对象。只要通过四个明确即可。

1,明确数据是否是纯文本数据。确定流的体系。

是纯文本:----Reader。Writer。体系

否:-------------InputStream。OutputStream。体系

2,明确源和目的

从源读数据:输入流---------InputStream  Reader

往目的写数据:输出流------OutputStream  Writer

3,明确具体的设备。

源设备:

硬盘:File

键盘:System.in

内存:数组

网络:Socket

目的设备:

硬盘:File

控制台:System.out

内存:数组

网络:Socket

4,是否需要其他额外功能。

1,是否需要高效(缓冲区);

是,就加上buffered

BufferedReader  bufr = new BufferedReader(字符输入流);

BufferedWriter  bufw = new BufferedWriter(字符输出流);

BufferedInputStream  bufr = new BufferedReader(字节输入流);

BufferedOutputStream  bufw = new BufferedWriter(字节输出流);

2,转换。

需要转换,当用的是字节流,但是操作的却是文本数据时。

所以要将已有的字节流转成字符流。这样操作方便。。

InputStreamReader,OutputStreamWriter

InputStreamReader  isr = new InputStreamReader(System.in);

OutputStreamWriter osw = new OutputStreamWriter(System.out);

注意:

     如果需求中已经明确了指定编码表的动作。那就不可以使用FileWriter或FileReader,因为它们内部是使用默认的本地码表。只能使用其父类。OutputStreamWriter.和 InputStreamReader

什么时候使用转换流呢?

1,源或者目的对应的设备是字节流,但是操作的却是文本数据,可以使用转换作为桥梁。提高对文本操作的便捷。

2,一旦操作文本涉及到具体的指定编码表时,必须使用转换流 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值