Java IO流的操作规律

本文提供了一套四步骤的方法来帮助开发者在Java中选择合适的IO流。首先判断数据类型,其次明确数据源与目标,接着确认具体设备,最后考虑是否需要额外功能如缓冲或转换。

因为流对象太多,开发时不知道用哪个对象合适,通过以下四个步骤明确即可。

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

是纯文本:----ReaderWriter。字符流体系

否:-------------InputStreamOutputStream。字节流体系

2,明确源和目的

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

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

3,明确具体的设备。

源设备:

         硬盘:File    使用FileInputStream或FileReader

         键盘:System.in

         内存:数组 使用Arrays.asList转换为集合对象Properties,使用其list()方法转换为流对象

         网络: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)转换。

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

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

         InputStreamReaderOutputStreamWriter

         InputStreamReader  isr = new InputStreamReader(System.in);

         OutputStreamWriter osw = new OutputStreamWriter(System.out);

注意:

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

 

什么时候使用转换流呢?

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值