文档介绍:第第77章章JavaJava的输入的输入//输出输出2016-9-82016-9-8JavaJava面向对象程序设计教程面向对象程序设计教程22主要内容主要内容?? 流输入流输入//输出类的层次结构输出类的层次结构?? 流的概念流的概念?? 字节流字节流?? 字符流字符流?? 转换流转换流?? 输入输出类的分类输入输出类的分类?? 标准流标准流?? IOExceptionIOException及其子类及其子类?? 输入输入//输出流类的应用输出流类的应用?? 输入输入//输出流类的一般例子输出流类的一般例子?? 典型的输入典型的输入//输出流类的组合应用输出流类的组合应用?? 对象串行化对象串行化?? 文件类的应用文件类的应用?? File类类?? 流输入流输入//输出类的层次结构输出类的层次结构2016-9-82016-9-8JavaJava面向对象程序设计教程面向对象程序设计教程44流的概念流的概念??流(流(StreamStream)是有序的数据序列,它有源(输入流)与)是有序的数据序列,它有源(输入流)与目的(输出流)。目的(输出流)。??(输入(输入//输出)。该包有两输出)。该包有两个主要的部分:字符流(个主要的部分:字符流(Character streamCharacter stream)和字节流)和字节流((Byte streamByte stream)。)。??基于文本的基于文本的I/OI/O都是一些人们能够阅读的字符(比如说程都是一些人们能够阅读的字符(比如说程序的源代码),而基于数据的序的源代码),而基于数据的I/OI/O是二进制(比如说表示是二进制(比如说表示图像的位图)。图像的位图)。??字节流被称作输入流(字节流被称作输入流(Input streamInput stream)或输出流)或输出流((Output streamOutput stream),而字符流被称作),而字符流被称作ReaderReader或或WriterWriter。。??字节流不能正确携带字符,一些与字符相关的流在字节流字节流不能正确携带字符,一些与字符相关的流在字节流里是没有意义的里是没有意义的。。2016-9-82016-9-??普通的用于建立不同字节和字符流类型的类普通的用于建立不同字节和字符流类型的类————输入输出流、输入输出流、ReaderReader、、WriterWriter和在它们之间进行和在它们之间进行转换的类。转换的类。??定义不同类型流的范围定义不同类型流的范围————过滤流、缓冲流、管过滤流、缓冲流、管道流以及一些流的具体实例。道流以及一些流的具体实例。??读写基本值和字符串数据流的类和接口。读写基本值和字符串数据流的类和接口。??一个以系统无关的方式与文件进行交互的类和接一个以系统无关的方式与文件进行交互的类和接口。口。??形成对象串行化(形成对象串行化(Object serializationObject serialization)机制的)机制的类和接口类和接口————将对象传递到字节流,或从一个字将对象传递到字节流,或从一个字节流中读取数据,重新组建对象。节流中读取数据,重新组建对象。2016-9-82016-9--9-82016-9-8JavaJava面向对象程序设计教程面向对象程序设计教程77InputStreamInputStream及其子类的推荐用法及其子类的推荐用法??当需要输入当需要输入ASCIIASCII正文或者二进制数值时,应当正文或者二进制数值时,应当使用使用InputStreamInputStream类。类。??根据输入源,选用根据输入源,选用FileInputStreamFileInputStream或某个或某个getInputStreamgetInputStream方法。方法。??可以有选择行地使用任意数量的可以有选择行地使用任意数量的InputStreamInputStream过过滤器、缓冲区、扩