20.1 Streams Overview
java.io有两个主要的部分:字符流和字节流。字符时16 bit的UTF-16字符,而字节是8 bit的。I/O要么是基于文本的要么是基于二进制的。基于文本的I/O要利用可识别的字符流,比如程序的源代码。基于二进制的I/O要利用二进制数据流,比如图片文件。字符流用于基于文本的I/O,而字节流用于基于二进制数据的I/O。尽管字节流可以用来处理7-bit或8-bit字符,但是它还是不适合处理字符,因为有些字符相关的问题在字节流看来是没有意义的。字节流被叫做input stream或者output stream; 而字符流被叫做reader或者writer。几乎所有的input stream都有相应的output stream。input stream/output stream拥有的功能reader/writer都具有,反之亦然。
由于不同流功能上有重叠,我们不加以细分时,指的是所有的流。但我们讨论input stream/output stream时,我们指的是字节流; 讨论reader/writer时,我们指的是字符流。比如,我们讨论Buffered Stream时,我们指的是整个BufferedInput Stream, BufferedOutputStream, BufferedReader 和 BufferedWriter。当我们讨论Buffered字节流时,我们指的是BufferedInputStream和BufferedOutputStream。当我们讨论Buffered字符流时,我们指的是BufferedReader和BufferedWriter。
java.io包中的接口和类大致分为5组:
1:创建字节流和字符流的通用类。从20.2到20.4讲述input stream/output stream, reader/writer和相互转换的类。
2:一组描述不同流类型的类。20.5讲述filtered stream, buffered stream, piped stream。其中还会讲述它们的一些实例,比如支持行数的reader和词法分析流。
3:20.6讲述支持内置类型和string的流类和接口。
4:20.7讲述支持系统独立和文件交互的类和接口。
5:20.8讲述支持对象序列化的类和接口。通过这种机制,我们可以将对象变成二进制流,并且通过二进制流重新构建对象。
有些输出流类使用java.util.Formatter实例支持格式化输出。通过将输入流和java.util.Scanner绑定到一起,我们可以得到格式化输入。在Chapter22将讲述格式化输入和输出。
类似,当一个方法中传入null引用或者数组越界,NullPointerException和IndexOutOfBoundsException将会抛出。在这种情况下,即使没有异常发生,也要明确记录。
本章中所有代码用到java.io中的类。每个例子都要import java.io.*, 即使在代码中没有明确写出。
分享到:
相关推荐
Java之父James Gosling写的Java教程,希望对大家有用!
The Java Programming Language.4th.Edition.Aug.2005.pdf
The Java Programming Language.4th.Edition.Aug.2005 欢迎下载
The C++ Programming Language 4th Edition.pdf
C++11 has arrived: thoroughly master it, with the definitive new guide from C++ creator Bjarne Stroustrup, C++ Programming Language, Fourth Edition! The brand-new edition of the worlds most trusted ...
The C++ Programming Language, 4th Edition 1368 pages Publisher: Addison-Wesley Professional; 4 edition (May 19, 2013) Language: English ISBN-10: 0321563840 ISBN-13: 978-0321563842 C++11 has ...
For other references, see "Further Reading" on page 755. <br>This fourth edition provides integrated coverage of the Java programming language as provided by the Java™ 2 Platform Standard Edition...
The Java Programming Language 4th Edition
JAVA四大名著之一,作者Ken Arnold。
Bjarne Stroustrup The C++ Programming Language, 4th Edition.pdf )
C++11 has arrived: thoroughly master it, with the definitive new guide from C++ creator Bjarne Stroustrup, C++ Programming Language, Fourth Edition! The brand-new edition of the world’s most trusted ...
The C++ Programming Language Special 3rd Edition.rar
The C++Programming Language Special 3rd Edition.pdf
Windows System Programming, 4th Edition. Windows System Programming, 4th Edition.
Introduction.to.Java.Programming.6th.Edition.part1 英文版 CHM格式,由于上传文件限制共RAR分了4部分...
不用介绍了吧。学C++的怎么能错过它呢? 英文版,圣经。 [计算机科学经典着作].Addison.Wesley.Bjarne.Stroustrup.The.C++.Programming.Language.Third.Edition.pdf