流操作的基本步骤


流操作的基本规律:

最痛苦的就是流对象很多,不知道用哪个,那我们可以

通过三个明确来完成。

1.明确源和目的。

源:输入流。InputStream  Reader

目的:输入流。OutputStream Writer.

2.操作的数据是否是纯文本。

是:字符流

不是:字节流

3.当体系明确后,再明确要使用哪个具体的对象。

通过设备来进行区分:

源设备:内存,硬盘,键盘。

目的设备:内存,硬盘,控制台。

最后问自己一句,是否需要提高效率:  加入缓冲区

 

例子:

需求:将键盘录入的数据保存到一个文件中

   这个需求中有源和目的都存在。

那么分别分析

源:InputStream Reader

是不是纯文本?是!Reader


设备:键盘。对应的对象是System.in

问?:不是选择Reader吗?System.in对应的不是字节流吗?

为了操作键盘的文本数据方便。转成字符流按照字符串操作是最方便的。

所以既然明确了Reader,那么就将System.in转换成Reader.

用了Reader体系中转换流,InputStreamReader


InputStreaReader isr=new InputStreamReader(System.in);


需要提高效率!  BufferedReader

BufferedReader bufr=new  BufferedReader(isr)


目的:OutputStream Writer

是否存文本,是! Writer

设备:硬盘。一个文件。使用FileWriter.

FileWriter fw=new FileWriter("c.txt")

需要提高效率?需要

Bufferedwriter bufw=new BufferedWriter(fw)


扩展:

想要把录入的数据按照指定的编码表(utf-8)将数据存到文件中

目的:OutputStream Writer

是否存文本,是! Writer

设备:硬盘。一个文件。使用FileWriter.

但是FileWrier是使用的默认编码表。GBK

但是存储时,需要加入指定编码表utf-8。而指定的编码表只有转换流可以指定

所以要使用的对象是OutputStreamWriter

而该转换流对象要接受一个字节输出流,而且还可以操作的文件的字节输出流。FileOutputStram


OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8")

需要提高效率?需要

Bufferedwriter bufw=new BufferedWriter(osw)


所以转换流通常涉及到字符编码转换时使用  OutputStreamWriter  InputStreamReader


 

 

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值