您的位置:首页 > 职场人生

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

2014-03-29 02:42 323 查看
----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

流操作的基本规则

最痛苦的就是流对象有很多 不知道用哪一个

通过三个明确来完成

1明确源和目的

源: 输入流,InputStream Reader

目的:输出流,OutputStream Writer

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

是 :字符流

不是:字节流

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);

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

---------------------------------------------------------

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

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

那么分别分析

源: 键盘录入: 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.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: