PAGE5
《面向对象程序设计》教案
第29讲
教学对象
计算机科学技术专业
授课内容
11.4文本I/O流
11.5案例学习——统计文件字符数、单词数和行数
课程标准
教学目标
(一)知识目标
1.了解字符输入/输出流的层次结构和常用方法
2.掌握文件字符输入/输出流类的使用方法
3.掌握缓存字符输入/输出流类的使用方法
(二)能力目标
1.能够应用字符流进行文件读写操作
2.能够根据实际需要正确选择IO流完成读写操作
教学方法
采用讲授法、演示法、讨论法、案例教学。
学时及分配(第1学时50分钟)
课堂讲授30分钟
课堂练习20分钟
11.4文本I/O流
学时及分配(第2学时50分钟)
课堂讲授20分钟
课堂练习30分钟
11.5案例学习——统计文件字符数、单词数和行数
知识点分析
重点:
Reader类和Writer类的常用方法
FileReader类和FileWriter类的常用方法
BufferedReader类和BufferedWirter类的常用方法
难点:
应用FileReader类和FileWriter类读写数据
应用BufferedReader类和BufferedWirter类读写数据
教学过程设计
内容
方式
问题导入
上节学习的二进制输入/输出流是以字节为信息的基本单位,本节学习以字符为基本单位的文本I/O流,也叫字符I/O流。
内容要点
11.4文本I/O流
11.4.1Writer类和Reader类
抽象类Writer和Reader分别是文本输出流和输入流的根类,它们实现字符的写读。Writer类定义的常用方法如下。
publicvoidwrite(intc):向输出流中写一个字符,实际是将int型的c的低16位写入输出流。
publicvoidwrite(char[]cbuf):把字符数组cbuf中的字符写入输出流。
publicvoidwrite(Stringstr):把字符串str写入输出流中。
publicvoidflush():刷新输出流。
publicvoidclose():关闭输出流。
Reader类定义的方法主要有:
publicintread():读取一个字符,返回范围为0到65535之间int型值,如果到达流的末尾返回-1。
publicintread(char[]cbuf):读取多个字符到字符数组cbuf中,如果到达流的末尾返回-1。
publicvoidclose():关闭输入流。
Writer类和Reader类的方法在发生I/O错误时都抛出IOException异常,因此在程序中应该捕获异常或声明抛出异常。
11.4.2FileWriter类和FileReader类
FileWriter类是文件输出流,FileReader类是文件输入流。当操作的文件中是文本数据时,推荐使用这两个类。
FileWriter类构造方法有:
publicFileWriter(StringfileName):用参数fileName指定的文件创建一个文件输出流对象。
publicFileWriter(Filefile):用参数file指定的File对象创建一个文件输出流对象。
publicFileWriter(StringfileName,booleanappend):使用该构造方法创建文件输出流对象时,如果参数appent指定为true,则可以向文件末尾追加数据,否则覆盖文件原来的数据。
FileReader类构造方法有:
publicFileReader(StringfileName):用字符串表示的文件构造一个文件输入流对象。
publicFileReader(Filefile):用File对象表示的文件构造一个文件输入流对象。
FileWriter类是OutputStreamWriter的子类,它实现文本输出流向二进制输出流的转换;FileReader类是InputStreamReader的子类,它实现二进制输入流向文本输入流的转换功能。
下面的FileCopyDemo.java程序使用FileReader和FileWriter将文件input.txt的内容复制到output.txt文件中。
【程序11-8】FileCopyDemo.java
11.4.3BufferedWriter类和BufferedReader类
BufferedWriter类和BufferedReader类