黑马程序员技术交流社区
标题:
IO流
[打印本页]
作者:
此间的少年
时间:
2016-10-9 19:08
标题:
IO流
流的操作规律:
1.明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2.明确数据是否是纯文本数据
源:是纯文本:Reader
否:InputStream
目的:是纯文本 Writer
否:OutputStream
到这里就可以明确需求中具体要使用哪个体系
3.名确具体的设备
源设备:
硬盘:File
键盘:System.in
内存:数组 缓存
网络:Socket流
目的设备:
硬盘:File
控制台:System.out
内存:数组
网络:Socket流
4.是否需要其他额外功能
(1)是否需要高效(缓冲区):是:及加上buffer
(2)转换
需求:1.复制一个文本文件。
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确具体的设备
源:
硬盘: File
目的:
硬盘:File
FileReader fr=new FileReader("a.txt")
FileWriter fw=new FiileWriter("b.txt")
4.需要额外功能
需要高效
BufferedReader bufr =new BufferedReader(new FileReader("a.txt"))
BufferedWriter bufw =new BufferedReader(new FileReader("b.txt"))
======================================================
需求2. 读取键盘录入信息,并写入到一个文件中
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确识别
源:
键盘:System.in
目的:
硬盘:File
InputStream in =System.in;
FileWriter fw =new FileWriter("b.txt")
这样做可以。将读取的字节数据转成字符串,再由字符流操作
4.需要额外的功能吗?
需要。转换。将字节流转成字符流因为明确的源是Reader,这样操作文本数据便捷
所以要将已有字节流转成字符流。使用字节转字符的对象。InputStreamReader
InputStreamReader isr=new InputStreamReader(System.in)
FileWriter fw=new FileWriter("b.txt")
还需要功能吗?
需要:想高效
BufferedReader bufr=new BufferedReader( new InputStreamReader(System.in))
BufferedWriter bufw=new BufferedWriter( new FileWriter("b.txt"))
=========================================
需求3.经一个文本文件数据显示在控制台上
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确具体设备
源:
硬盘:File
目的:
控制台:System.out
FileReader fr =new FileReader("a.txt")
OutputStream out=System.out
4.需要额外功能吗?
需要转换。
FileReader fr =new FileReader("a.txt")
OutputStreamWriter osw =new OutputStreamWriter(System.out)
=================================================
4.读取键盘录入数据,显示在控制台上
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确设备
源:
键盘:System.in
目的:
控制台: System.out
InputStream in=System.in;
OutputStream out =System.out;
4.明确额外功能
需要转换,因为都是字节流,但是操作的确实文本数据。
所以使用字符流操作起来干呢更加便捷。
InputStreamReader isr =new InputStreamReader(System.in);
OutputStreamReader osw =new OutStreamWriter(System.out)
======================================
需求5:将一个中文字符串数据按照指定的编码表写入到一个文本文件中
注意:既然需求中已经明确了指定的编码表动作
那就不可以使用FileWriter,因为FileWriter内部是使用默认的本地码
OutputStreamWriter接收一个字节输出流对象,既然操作文件,那么使用FileOutputStream
什么时候使用转换流?
1.源或者目的对应的设备是字节流。但是操作的确实文本数据,可以使用转换作为桥梁提高对文本操作的便捷
2.一旦操作文本设计具体的指定编码表时,必须使用转换流。
作者:
周军福
时间:
2016-10-9 20:38
FileReader fr =new FileReader("a.txt")
作者:
yinyujue
时间:
2016-10-9 23:47
还没有学到io,先收藏了
作者:
读书可以当饭吃
时间:
2016-10-10 00:29
IO流知识点太多了,看得心累
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2