黑马程序员技术交流社区
标题:
让我豁然开朗的IO总结 给亲们都分享下
[打印本页]
作者:
宗士为
时间:
2012-5-18 10:36
标题:
让我豁然开朗的IO总结 给亲们都分享下
有不明白的可以M我
为黑马奋斗的人们多加交流
如果里面有错误 大家知道的帮指出来 以免我误人子弟 那就罪过啦
流的体系
后缀 Stream 字节流
Writer reader 字符流
字符流
FileReader
FileWriter
BufferedReader
BufferedWriter
转换流(字节流+ 编码表)
InputStreamReader 字节转字符
OutputStreamWriter 字符转字节
字节流
FileInputStream
FileOutputStream
BufferedInputStream
BufferedOutputStream
File
PerintStream
PerintWriter
PerintStream
out.writer 写一个字节(int 的其他3个字节则丢了) 所以97 和 609 都为写出a
out.println(97) 写了四个字节 9 7 \r \ t
out.print(97) 写了2个字节 9 7
print 保证数据形式的原样输出(要打印的是什么 输出后还是什么不变)
--------------------------------------------
流对象很多 开发时到底使用哪个
流的操作规律
四个明确
1.明确操作的是数据源还是数据目的(明缺流的体系)
源:读取 InputStream Reader
目的;写入 OutputStram Writer
2.明确数据内容是否是纯文本
源:纯文本 Reader(文本操作快捷)
不是纯文本 就用InputStream
目的;纯文本 Writer(文本操作快捷)
不是纯文本 就用 OutputStram
到这里可以明确源或者目的具体要用的哪个体系
3.明确数据所在的设备
源设备:硬盘 File流
内存 数组
键盘 system.in
网络 socket
目的设备: 硬盘 File流
内存 数组
显示器(控制台)system.out
网络 socket
4.是否需要额外功能
高效 Buffer
编码转换 通过转换流、所以目的要变化
序列化 ObjectInputStream ObjectOutputStream
保证数据类型的表现形式 打印流的打印方法
基本数据类型转换 DateInputStream DateOutputStream
write(int)
writeInt(int)
需求:复制一个文本文件
确定源和目的
源:InputStream Reader
目的; OutputStram Writer
明确源和目的是否是纯文件
是的
源 Reader
目的 Writer
明确设备
源 硬盘
目的 硬盘
FileReader fr= new FileReader("a.txt")
FileWriter fw = new FileWriter("b.txt")
FileWriter(使用的中文版JDK使用的是GBK码表)
如果对文字进行过滤 (例如论谈非法文字)
如果使用上面的字节可以过滤 如果使用字符则不能过滤
需求:高效复制一个文本文件
BufferedFileReader fr= new BufferedFileReader( new FileReader("a.txt"))
BufferedFileWriter fw = new BufferedFileWriter( new FileWriter("b.txt"))
需求:高效复制一个文本文件(用UTF - 8)输出
FileReader fr= new FileReader("a.txt")
//OutputStreamWriter osw = new OutputStreamWriter();
BufferedFileWriter fw = new BufferedFileWriter(new FileOutputStream(new FileWriter("b.txt","UTF-8")))
作者:
张卯
时间:
2012-5-18 10:52
P
e
rintStream
楼主这里多了一个字母e~应该是print
作者:
宗士为
时间:
2012-5-18 11:00
张卯 发表于 2012-5-18 10:52
PerintStream
楼主这里多了一个字母e~应该是print
是的是的 谢谢哈
作者:
李保成
时间:
2012-5-18 11:28
呵呵 简单理解一下就是如果源和目的都是纯文本文本,那么就直接使用字符流,如果不是,则就可以考虑使用转换流,转换流的出现是为了程序的方便操作性,而不是为了高效。如果使用高效就要想到buffered。另外转换流最大的好处就是制定编码格式。
作者:
贾飞雨
时间:
2012-5-18 12:44
谢谢楼主。。
作者:
徐炯
时间:
2012-5-18 18:17
谢谢楼主。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2