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.*, 即使在代码中没有明确写出。
分享到:
相关推荐
《The Java Programming Language 4th Edition》是由Java之父James Gosling所著的一本权威性的Java编程指南。这本书是Java编程领域的重要参考资料,对于初学者和经验丰富的开发者来说都具有极高的价值。第四版更新了...
The Java Programming Language.4th.Edition.Aug.2005 欢迎下载
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 ...
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...
### 关于《Java编程语言》第四版 #### 核心知识点概述 《Java编程语言》第四版是由Java语言的创造者之一James Gosling与Ken Arnold、David Holmes共同编写的权威著作,出版日期为2005年8月17日。本书由Addison ...
《Java编程语言第四版》是Java开发者不可或缺的经典教程,由著名Java专家Ken Arnold、James Gosling和David Holmes共同编写。这本书全面深入地介绍了Java语言,为程序员提供了清晰、准确的技术指导,是学习和掌握...
Introduction.to.Java.Programming.6th.Edition.part1 英文版 CHM格式,由于上传文件限制共RAR分了4部分...
不用介绍了吧。学C++的怎么能错过它呢? 英文版,圣经。 [计算机科学经典着作].Addison.Wesley.Bjarne.Stroustrup.The.C++.Programming.Language.Third.Edition.pdf
The.C++.Programming.Language.4th.Edition C++ Primer, Fifth Edition 资源找来不容易,打印需谨慎,太多了。我做过,建议自己在电脑上看吧。1300+双面打印也很厚的 C+11 has arrived: thoroughly master it, with...
The book introduces fundamental concepts beginning with the basics of writing Unix programs in C, and including material on basic system calls, file I/O, interprocess communication (for getting ...
java网络编程 Java.Network.Programming.3rd.Edition.Oct.2004
《The C Programming Language》(中文版)是C语言的权威性经典著作,由C语言的研制者之一Brian W. Kernighan和Dennis M. Ritchie共同编写,中文版由徐宝文、李帮清等人翻译。这本书全面、系统地介绍了标准C语言及其...
经典Java学习资料 1、The Java Programming Language 4th Edition.chm 2、The JavaTM Virtual Machine Specification.chm 3、Inside Java Virtual Machine.chm