实验6 输入输出流操作
一、实验目的
1. 理解数据流的概念
2. 理解Java流的层次结构
3. 理解文件的概念
二、实验要求
1. 掌握字节流的基本使用方法
2. 掌握字符流的基本使用方法
3. 能够创建、读写、更新文件
三、实验练习内容
1. Java的标准输入输出流System.in/System.out
知识点解析: 标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
示例:课本例10.1
2. 文件字节输入输出流类FileInputStream/ FileOutputStream
知识点解析: 文件字节输入输出流主要负责完成对本地磁盘文件的顺序输入与输出操作。
示例:课本例10.2
3. 数据字节输入输出流DataOutputStream/DataInputStream
知识点解析: 使用数据输入流DataOutputStream 和数据输出流DataInputStream 可以读取或写入8种基本数据类型的数据,不用关心它们的实际长度是多少字节。
一般与文件输入流FileInputStream 和输出流类FileOutputStream 一起使用。
示例:课本例10.3
4. 对象字节输入输出流ObjectInputStream/ ObjectOutputStream
知识点解析: 使用对象流可以直接写入或读取一个对象。
由于一个类的对象包含多种信
息,为了保证从对象流中能够读取到正确的对象,因此要求所有写入对象流的对象都必须是序列化的对象。
一个类如果实现了Serializable 接口,那么这个类的对象就是序列化的对象。
Serializable 接口没有方法,实现该接口的类不需要实现额外的方法。
示例:课本例10.4
5. 文件字符输入输出流FileReader/FileWriter和字符缓冲输入输出流
BufferedReader/BufferedWriter
知识点解析:文件字符输入输出流类与文件字节输入输出流类功能类似,但处理的基本单位是字符。
字符缓冲输入输出流类用来对字符流进行成批的处理。
示例:课本例10.5
6. 文件类File
知识点解析: 文件类主要用来保存文件或目录的各种属性, 包括文件名、文件长度、最后修改时间、是否可读等;文件类还有以下功能:提供获得当前文件的路径名, 判断指定文件是否存在, 获得当前目录中所有文件列表, 创建文件、删除文件、创建目录、删除目录等操作的方法。
示例:课本例10.6
7. 文件过滤器接口FileFilter和FilenameFilter
知识点解析: 文件过滤器接口FileFilter和FilenameFilter用来实现对文件名字符串的过滤。
两个接口中都声明accept()方法来实现过滤操作。
示例:课本例10.7
8. 随机文件类RandomAccessFile
知识点解析:随机文件类用于进行随意位置、任意类型的文件访问,并且在文件的读取方式中支持文件的任意读取而不只是顺序读取。
示例:课本例10.8
四、设计题(以下题目1、2题必做,第3题选做)
1. 利用文件字节输入输出流和数据字节输入输出流,将"九九乘法表"写入整数类型文件,并输出显示。
2. 将Java的关键字保存在一个文本文件中,判断一个字符串是否为Java的关键字。
3. 使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的数据也要求是已排序的。