面向对象程序设计教程 (6).ppt

上传人:s****8 文档编号:69256340 上传时间:2023-01-01 格式:PPT 页数:21 大小:582.50KB
返回 下载 相关 举报
面向对象程序设计教程 (6).ppt_第1页
第1页 / 共21页
面向对象程序设计教程 (6).ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《面向对象程序设计教程 (6).ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计教程 (6).ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第7章 Java的输入/输出主要内容n n7.1 7.1 流输入流输入/输出类的层次结构输出类的层次结构 7.1.1 7.1.1 流的概念流的概念 7.1.2 7.1.2 字节流字节流 7.1.3 7.1.3 字符流字符流 7.1.4 7.1.4 转换流转换流 7.1.5 7.1.5 输入输出类的分类输入输出类的分类 7.1.6 7.1.6 标准流标准流 7.1.7 7.1.7 IOExceptionIOException及其子类及其子类n n7.2 7.2 输入输入/输出流类的应用输出流类的应用 7.2.1 7.2.1 输入输入/输出流类的一般例子输出流类的一般例子 7.2.2 7.2.2

2、典型的输入典型的输入/输出流类的组合应用输出流类的组合应用 7.2.3 7.2.3 对象串行化对象串行化n n7.3 7.3 文件类的应用文件类的应用 7.3.1 File7.3.1 File类类 7.3.2 File7.3.2 File类应用举例类应用举例2023/1/12023/1/12 2JavaJava面向对象程序设计教程面向对象程序设计教程7.1 流输入/输出类的层次结构流的概念 n n流(流(StreamStream)是有序的数据序列,它有源(输入流)与)是有序的数据序列,它有源(输入流)与目的(输出流)。目的(输出流)。n njava.iojava.io包使用术语流定义包使用术语

3、流定义I/OI/O(输入(输入/输出)。该包有两输出)。该包有两个主要的部分:字符流(个主要的部分:字符流(Character streamCharacter stream)和字节流)和字节流(Byte streamByte stream)。)。n n基于文本的基于文本的I/OI/O都是一些人们能够阅读的字符(比如说程都是一些人们能够阅读的字符(比如说程序的源代码),而基于数据的序的源代码),而基于数据的I/OI/O是二进制(比如说表示是二进制(比如说表示图像的位图)。图像的位图)。n n字节流被称作输入流(字节流被称作输入流(Input streamInput stream)或输出流)或输出

4、流(Output streamOutput stream),而字符流被称作),而字符流被称作ReaderReader或或WriterWriter。n n字节流不能正确携带字符,一些与字符相关的流在字节流字节流不能正确携带字符,一些与字符相关的流在字节流里是没有意义的里是没有意义的 。2023/1/12023/1/14 4JavaJava面向对象程序设计教程面向对象程序设计教程java.io包里的类和接口分类 n n普通的用于建立不同字节和字符流类型的类普通的用于建立不同字节和字符流类型的类输入输出流、输入输出流、ReaderReader、WriterWriter和在它们之间进行和在它们之间进行

5、转换的类。转换的类。n n定义不同类型流的范围定义不同类型流的范围过滤流、缓冲流、管过滤流、缓冲流、管道流以及一些流的具体实例。道流以及一些流的具体实例。n n读写基本值和字符串数据流的类和接口。读写基本值和字符串数据流的类和接口。n n一个以系统无关的方式与文件进行交互的类和接一个以系统无关的方式与文件进行交互的类和接口。口。n n形成对象串行化(形成对象串行化(Object serializationObject serialization)机制的)机制的类和接口类和接口将对象传递到字节流,或从一个字将对象传递到字节流,或从一个字节流中读取数据,重新组建对象。节流中读取数据,重新组建对象。

6、2023/1/12023/1/15 5JavaJava面向对象程序设计教程面向对象程序设计教程java.io包里的字节流 2023/1/12023/1/16 6JavaJava面向对象程序设计教程面向对象程序设计教程InputStream及其子类的推荐用法 n n当需要输入当需要输入ASCIIASCII正文或者二进制数值时,应当正文或者二进制数值时,应当使用使用InputStreamInputStream类。类。n n根据输入源,选用根据输入源,选用FileInputStreamFileInputStream或某个或某个getInputStreamgetInputStream方法。方法。n n

7、可以有选择行地使用任意数量的可以有选择行地使用任意数量的InputStreamInputStream过过滤器、缓冲区、扩展器、编码器等子类,然后再滤器、缓冲区、扩展器、编码器等子类,然后再上层包装上层包装DataInputStreamDataInputStream类,并使用它的类,并使用它的readread方法执行输入。如果需要读入对象而非普通方法执行输入。如果需要读入对象而非普通数据,则应当使用数据,则应当使用ObjectInputStreamObjectInputStream类。类。n n如果需要使用缓冲技术,应当直接包装如果需要使用缓冲技术,应当直接包装FileInputStreamFi

8、leInputStream类,以便尽可能早地让所有的类,以便尽可能早地让所有的类都采用缓冲技术。类都采用缓冲技术。2023/1/12023/1/17 7JavaJava面向对象程序设计教程面向对象程序设计教程java.io的字符流 2023/1/12023/1/18 8JavaJava面向对象程序设计教程面向对象程序设计教程转换流 n n转换流使用的类转换流使用的类InputStreamReaderInputStreamReader和和OutputStreamReaderOutputStreamReader实现了实现了UnicodeUnicode相同指定相同指定编码的字节流,或者本机系统的默认

9、编码的字节编码的字节流,或者本机系统的默认编码的字节流之间的转换。流之间的转换。2023/1/12023/1/19 9JavaJava面向对象程序设计教程面向对象程序设计教程输入输出类的分类 n n文件I/O:FileInputStream n n内存缓冲区I/O:BufferedInputStream n n存取I/O:DataInputStream n n管道I/O:PipedInputStream n n过滤器I/O:FilterInputStream 2023/1/12023/1/11010JavaJava面向对象程序设计教程面向对象程序设计教程标准流 n nSystem.out是标准

10、的输出流,默认情况下,它是一个控制台。n nSystem.in是标准输入流,默认情况下,它指的是键盘。n nSystem.err指的是标准错误流,它默认是控制台。n n这些流可以重定向到任何兼容的输入/输出设备。2023/1/12023/1/11111JavaJava面向对象程序设计教程面向对象程序设计教程IOException及其子类 n n在java.io中,每一个特定的I/O错误都是用异常IOException及其子类来报告的。n n最常见的I/O异常有FileNotFoundException、EOFException、InterruptedIOException、UTFDataFor

11、matError等。2023/1/12023/1/11212JavaJava面向对象程序设计教程面向对象程序设计教程7.2 输入/输出流类的应用输入/输出流类的一般例子 n n在使用输入输出流类时,有两个语句总是要注意的:一是导入一是导入java.iojava.io包(包(import import java.iojava.io.*;.*;););二是对二是对IOExceptionIOException异常的处理,一般是在调异常的处理,一般是在调用的方法的声明时用的方法的声明时“throws throws IOExceptionIOException”,当然也可以用当然也可以用try-catc

12、htry-catch语句进行异常处理。语句进行异常处理。n n直接读取标准输入流的用法:InputStreamDemo.java n n管道流的使用:PipeIODemo.java2023/1/12023/1/11414JavaJava面向对象程序设计教程面向对象程序设计教程典型的输入/输出流类的组合应用 n n标准输入输出:StandardIODemo.java n n读写顺序文件:FileIODemo.java n n读写二进制文件:BinaryIODemo.java n n读写随机文件:RandomIODemo.java 2023/1/12023/1/11515JavaJava面向对象程

13、序设计教程面向对象程序设计教程RandomAccessFile类的文件访问控制权限n nr 只读,如果试图进行写操作将引发异常IOException。n nrw 可读可写,如果文件不存在将会先创建该文件。n nrws 文件可读可写,并且要求每次更改文件内容或元数据时同步写到存储设备中。n nrwd 文件可读可写,并且要求每次更改文件内容时同步写到存储设备中。2023/1/12023/1/11616JavaJava面向对象程序设计教程面向对象程序设计教程对象串行化 n n把一个对象的表示转化为字节流的过程称为串行把一个对象的表示转化为字节流的过程称为串行化(化(SerializationSeri

14、alization),而从字节流中把对象重建),而从字节流中把对象重建出来即是反串行化(出来即是反串行化(DeserializationDeserialization)。)。n n关键字关键字transienttransient描述的是临时的变量,它为被串描述的是临时的变量,它为被串行化的数据提供了一个语言级的标记数据方法。行化的数据提供了一个语言级的标记数据方法。n n默认的串行化过程是将既不是默认的串行化过程是将既不是transienttransient也不是也不是staticstatic的对象的每个域变量串行化。基本类型和的对象的每个域变量串行化。基本类型和字符串是用字符串是用DataO

15、utputStreamDataOutputStream中的编码写的,中的编码写的,对象被对象被ObjectOutputStreamObjectOutputStream的的writeObjectwriteObject方方法串行化。法串行化。2023/1/12023/1/11717JavaJava面向对象程序设计教程面向对象程序设计教程思考与练习n n在ObjectSerialization.java 文件中改变变量前面的关键字(增删transient或static),观察输出结果及文件data.ser 大小的变化。n n在ObjectSerialization.java 文件中,如果使readO

16、bject和writeObject中定义的结构顺序不一致,将导致什么结果?2023/1/12023/1/11818JavaJava面向对象程序设计教程面向对象程序设计教程7.3 文件类的应用文件类的应用 n nFile类提供了好几种操作文件名的有用操作。它提供了将路径名分解的方法,用于查询路径名所指文件有关的文件系统。n n一个File对象实际上表示一条路径,不必是一个底层文件。2023/1/12023/1/12020JavaJava面向对象程序设计教程面向对象程序设计教程举例n n查询文件信息:FileInfo.java n n复制文件:Copy.java n n查询某个目录下子目录及文件:Dir.java 2023/1/12023/1/12121JavaJava面向对象程序设计教程面向对象程序设计教程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁