面向对象程序设计教程

上传人:自*** 文档编号:48517814 上传时间:2018-07-16 格式:PPT 页数:21 大小:582.60KB
返回 下载 相关 举报
面向对象程序设计教程_第1页
第1页 / 共21页
面向对象程序设计教程_第2页
第2页 / 共21页
面向对象程序设计教程_第3页
第3页 / 共21页
面向对象程序设计教程_第4页
第4页 / 共21页
面向对象程序设计教程_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《面向对象程序设计教程》由会员分享,可在线阅读,更多相关《面向对象程序设计教程(21页珍藏版)》请在金锄头文库上搜索。

1、第7章 Java的输入/输出DateDate1 1JavaJava面向对象程序设计教程面向对象程序设计教程主要内容n7.1 流输入/输出类的层次结构 7.1.1 流的概念 7.1.2 字节流 7.1.3 字符流 7.1.4 转换流 7.1.5 输入输出类的分类 7.1.6 标准流 7.1.7 IOException及其子类n7.2 输入/输出流类的应用 7.2.1 输入/输出流类的一般例子 7.2.2 典型的输入/输出流类的组合应用 7.2.3 对象串行化n7.3 文件类的应用 7.3.1 File类 7.3.2 File类应用举例DateDate2 2JavaJava面向对象程序设计教程面向

2、对象程序设计教程7.1 流输入/输出类的层次结构DateDate3 3JavaJava面向对象程序设计教程面向对象程序设计教程流的概念 n流(Stream)是有序的数据序列,它有源(输入流) 与目的(输出流)。njava.io包使用术语流定义I/O(输入/输出)。该包有 两个主要的部分:字符流(Character stream)和字 节流(Byte stream)。 n基于文本的I/O都是一些人们能够阅读的字符(比如说 程序的源代码),而基于数据的I/O是二进制(比如说 表示图像的位图)。 n字节流被称作输入流(Input stream)或输出流( Output stream),而字符流被称作

3、Reader或Writer 。 n字节流不能正确携带字符,一些与字符相关的流在字节 流里是没有意义的 。DateDate4 4JavaJava面向对象程序设计教程面向对象程序设计教程java.io包里的类和接口分类 n普通的用于建立不同字节和字符流类型的类 输入输出流、Reader、Writer和在它们之间 进行转换的类。n定义不同类型流的范围过滤流、缓冲流、 管道流以及一些流的具体实例。n读写基本值和字符串数据流的类和接口。n一个以系统无关的方式与文件进行交互的类和 接口。n形成对象串行化(Object serialization)机制 的类和接口将对象传递到字节流,或从一 个字节流中读取数

4、据,重新组建对象。DateDate5 5JavaJava面向对象程序设计教程面向对象程序设计教程java.io包里的字节流 DateDate6 6JavaJava面向对象程序设计教程面向对象程序设计教程InputStream及其子类的推荐用法 n当需要输入ASCII正文或者二进制数值时,应当 使用InputStream类。n根据输入源,选用FileInputStream或某个 getInputStream方法。n可以有选择行地使用任意数量的InputStream 过滤器、缓冲区、扩展器、编码器等子类,然 后再上层包装DataInputStream类,并使用它 的read方法执行输入。如果需要读

5、入对象而非 普通数据,则应当使用ObjectInputStream类 。n如果需要使用缓冲技术,应当直接包装 FileInputStream类,以便尽可能早地让所有 的类都采用缓冲技术。 DateDate7 7JavaJava面向对象程序设计教程面向对象程序设计教程java.io的字符流 DateDate8 8JavaJava面向对象程序设计教程面向对象程序设计教程转换流 n转换流使用的类InputStreamReader和 OutputStreamReader实现了Unicode相同指 定编码的字节流,或者本机系统的默认编码的 字节流之间的转换。 DateDate9 9JavaJava面向对

6、象程序设计教程面向对象程序设计教程输入输出类的分类 n文件I/O :FileInputStream n内存缓冲区I/O : BufferedInputStream n存取I/O :DataInputStream n管道I/O :PipedInputStream n过滤器I/O :FilterInputStream DateDate1010JavaJava面向对象程序设计教程面向对象程序设计教程标准流 nSystem.out是标准的输出流,默认情况 下,它是一个控制台。nSystem.in是标准输入流,默认情况下, 它指的是键盘。nSystem.err指的是标准错误流,它默认 是控制台。n这些流

7、可以重定向到任何兼容的输入/输 出设备。 DateDate1111JavaJava面向对象程序设计教程面向对象程序设计教程IOException及其子类 n在java.io中,每一个特定的I/O错误都是 用异常IOException及其子类来报告的。 n最常见的I/O异常有 FileNotFoundException、 EOFException、 InterruptedIOException、 UTFDataFormatError等。 DateDate1212JavaJava面向对象程序设计教程面向对象程序设计教程7.2 输入/输出流类的应用DateDate1313JavaJava面向对象程序

8、设计教程面向对象程序设计教程输入/输出流类的一般例子 n在使用输入输出流类时,有两个语句总是 要注意的: 一是导入java.io包(import java.io.*;) ; 二是对IOException异常的处理,一般是在 调用的方法的声明时“throws IOException” ,当然也可以用try-catch语句进行异常处理 。n直接读取标准输入流的用法: InputStreamDemo.java n管道流的使用: PipeIODemo.javaDateDate1414JavaJava面向对象程序设计教程面向对象程序设计教程典型的输入/输出流类的组合应用 n标准输入输出: Standar

9、dIODemo.java n读写顺序文件:FileIODemo.java n读写二进制文件:BinaryIODemo.java n读写随机文件:RandomIODemo.java DateDate1515JavaJava面向对象程序设计教程面向对象程序设计教程RandomAccessFile类的文件访问控制权限n“r“ 只读,如果试图进行写操作将引发异 常IOException。 n“rw“ 可读可写,如果文件不存在将会先 创建该文件。n“rws“ 文件可读可写,并且要求每次更改 文件内容或元数据时同步写到存储设备中 。n“rwd“ 文件可读可写,并且要求每次更改 文件内容时同步写到存储设备中

10、。DateDate1616JavaJava面向对象程序设计教程面向对象程序设计教程对象串行化 n把一个对象的表示转化为字节流的过程称为串 行化(Serialization),而从字节流中把对象 重建出来即是反串行化(Deserialization)。 n关键字transient描述的是临时的变量,它为被 串行化的数据提供了一个语言级的标记数据方 法。 n默认的串行化过程是将既不是transient也不是 static的对象的每个域变量串行化。基本类型和 字符串是用DataOutputStream中的编码写的 ,对象被ObjectOutputStream的 writeObject方法串行化。 D

11、ateDate1717JavaJava面向对象程序设计教程面向对象程序设计教程思考与n在ObjectSerialization.java 文件中改变 变量前面的关键字( 增删transient或 static ),观察输出结果及文件data.ser 大小的变化。n在ObjectSerialization.java 文件中,如 果使readObject和writeObject中定义的 结构顺序不一致,将导致什么结果?DateDate1818JavaJava面向对象程序设计教程面向对象程序设计教程7.3 文件类的应用DateDate1919JavaJava面向对象程序设计教程面向对象程序设计教程文件类的应用 nFile类提供了好几种操作文件名的有用操 作。它提供了将路径名分解的方法,用于 查询路径名所指文件有关的文件系统。n一个File对象实际上表示一条路径,不必 是一个底层文件。 DateDate2020JavaJava面向对象程序设计教程面向对象程序设计教程举例n查询文件信息:FileInfo.java n复制文件:Copy.java n查询某个目录下子目录及文件:Dir.java DateDate2121JavaJava面向对象程序设计教程面向对象程序设计教程

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号