黑马程序员 java基础IO操作原则随笔

本文详细介绍了Java中流操作的基本规则,包括如何根据源和目的、数据类型及设备选择合适的流对象,以及如何通过使用缓冲区来提高文件复制和键盘录入数据存储到文件中的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------- android培训java培训java学习型技术博客、期待与您交流! ------------

流操作的基本规则

最痛苦的就是流对象有很多 不知道用哪一个
通过三个明确来完成

1明确源和目的
源: 输入流,InputStream   Reader
目的:输出流,OutputStream  Writer
操作的数据是否是纯文本
是  :字符流
不是:字节流

3当体系明确后 在明确要使用那个具体的对象
通过设备类进行区分
源设备  :内存 硬盘 键盘
目的设备:内存,硬盘,控制台

1将一个文件中的数据存到另一个文件中---复制文件
源  :文件  因为是源所以使用读取流 InputStream  Reader 是不是操作文本文件
是 这时就可以选择Reader 这样体系就明确了
接下来明确要使用该体系中的哪个对象
明确设备:硬盘上一个文件
Reader体系中可以操作文件的对象是FileReader

是否需要提高效率 是! 加入Reader体系中缓冲区 BufferedReader

FileReader fr=new FileWriter("a.txt");
BufferedReader bufr=new BufferedReader(fr);

目的:OutputStream Writer
目的是否是纯文本呢
是:Writer FileWriter
设备:硬盘 一个文件
Writer体系中可以操作文件的对象是FileWriter

是否需要提高效率 是! 加入Writer体系中缓冲区 BufferedWriter

FileWriter fw=new FileWriter("b.txt");
BufferedWriter bufw=new BufferedWriter(fw);

练习 将一个图片文件中的数据存储到另一个文件中 复制文件 要按照以上格式自己完成三个明确

---------------------------------------------------------
需求: 将键盘录入的数据保存到一个文件中
这个需求中有源和目的都存在
那么分别分析
源: 键盘录入: InputStream    Reader
是不是纯文本?   是纯文本 是! Reader

设备键盘 对应的对象System.in
   不是选择Reader吗 System.in对应的不是字节流吗?
   为了操作键盘的文本数据方便 专程字符流按照字符窜操作是最方便的
   所以既然明确了Reader 那么就将System.in转成字符流
   用了Reader体系中的转换流 InputStreamReader

   InputStreamReader isr=new InputStreamReader(System.in);

   需要提高效率吗? 需要 BufferedReader

   BufferedReader bufr=new BufferedReader(isr);

   目的:OutputStream Writer
   是否是存文本? 是! Writer
   设备: 硬盘 一个文件 使用FileWriter
   FileWriter fw=new FileWriter("a.txt");
   需要提高效率吗? 需要
   BufferWriter bufw=new BufferedWriter(fw);

 

 

----------------------- android培训java培训java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.youkuaiyun.com/heima

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值