JAVA的I/O里面一大堆的类,刚开始学的时候,真是狂晕。
认真读完Core java之后,才发现这一套机制其实还简单的,只要抓住2条脉络:byte和Char,Decrator模式
byte和Char的区别,说起来很简单,一个是8位,一个是16位。为什么在java中要严格区分呢?因为java是unicode的,也就是16位的,而很多系统通用的是ASCII(8bit)。正因为这种差异,在I/O机制中,用stream处理8位,Reader处理16位。在从输入输出角度来考虑,于是就有了InputStream/OutputStream和InputReader/OutputReader。
然而,这些原始流提供的功能太少了,效率也太低了。例如,一次只能读多个字符而不能读一行。为了提高效率,需要对他们进行一层包装,提供缓冲等功能。这个时候就应用包装器(Decrator)模式,设计了buffer... LineNumber...Data...等
当然,操作文件的时候,可以简单的用FileReader,FileWriter打开文件,具体操作的时候PrintWriter就可以负责文件写了,而读文件一般需缓冲, 于是用BufferReader就行了
posted on 2007-09-14 18:25
硬盘草 阅读(239)
评论(0) 编辑 收藏