Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术

上传人:E**** 文档编号:89381428 上传时间:2019-05-24 格式:PPT 页数:30 大小:4.95MB
返回 下载 相关 举报
Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术_第1页
第1页 / 共30页
Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术_第2页
第2页 / 共30页
Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术_第3页
第3页 / 共30页
Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术_第4页
第4页 / 共30页
Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术》由会员分享,可在线阅读,更多相关《Java程序设计实例教程教学课件 PPT 作者 刘志成 ch07_Java输入输出技术(30页珍藏版)》请在金锄头文库上搜索。

1、第7讲 Java输入/输出技术,授课课时:4课时(180分钟) 主编:刘志成,2,主要内容,本课目标 新课引入与项目展示 案例1 读写学生记录信息 案例2 字符流类读写操作 案例3 序列化登录用户信息 课堂实践 巩固与提高,3,本课目标,4,教学情境引入新课,掌握File类、 RandomAccessFile类、字节流、字符流的应用,能应用Java I/O类实现文件读写操作 。,工作任务,项目展示,5,教师示范与讲解1,任务一:读写学生记录信息,案例分析,6,Java I/O简介,输入/输出处理是程序设计中非常重要的环节,如从键盘输入数据,从文件中读取数据或向文件中写数据等 Java把这些不同

2、类型的输入、输出抽象为流,所有的输入/输出以流的形式进行处理 Java中定义了字节流和字符流以及其他的流类来实现输入/输出处理 从InputStream和OutputStream派生出来的一系列类称为字节流类。这类流以字节(byte)为基本处理单位 从Reader和Writer派生出的一系列类称为字符流类,这类流以16位的Unicode编码表示的字符为基本处理单位,7,File类,File类提供了一种与机器无关的方式来描述一个文件对象的属性,每个File类对象表示一个磁盘文件或目录,其对象属性包含了文件或目录的相关信息,如名称、长度和文件个数等,调用File类的方法可以完成对文件或目录的管理操

3、作(如创建和删除等) 在进行文件操作时,在Swing中提供了JFileChooser类实现文件对话框的操作。JFileChooser 为用户选择文件提供了一种简单又友好的机制,用户可以通过“打开”文件对话框或“保存”文件对话框进行文件的选择操作 File类不属于进行文件读写操作的流类 File类仅描述文件本身的属性,不具有从文件读取信息或向文件存储信息的能力,8,File类,利用File类查看文件属性,9,随机读写文件和标准输入/输出,使用流类可以实现对磁盘文件的顺序读写,而使用RandomAccessFile则可以实现随机读写。所谓随机读写,是指读写上一个字节后,不仅能读写其后继的字节,还可

4、以读写文件中任意的字节,就好像文件中有一个随意移动的指针一样。Java语言提供了RandomAccessFile类来进行随机文件的读取 使用RandomAccessFile类写文件的关键代码为: RandomAccessFile logFile=new RandomAccessFile(“student.txt“,“rw“); String strRecord=”1234:wangym”; logFile.seek(logFile.length(); logFile.writeBytes(strRecord); 使用RandomAccessFile类读文件的关键代码为: RandomAcces

5、sFile logFile=new RandomAccessFile(“student.txt“,“r“); logFile.seek(0); logFile.readLine();/读取一行,10,课堂演示-读写学生记录信息,【案例7-1】读写学生记录信息 【案例学习目标】进一步熟悉GUI技术,理解随机文件读写操作特点,熟悉Random- AccessFile类的使用,能编写应用RandomAccessFile读写文件的程序 【案例知识要点】随机文件读写操作特点、RandomAccessFile类构造方法、RandomAccessFile类常用方法、Java I/O类的层次结构 【案例完成步

6、骤】 编写程序 运行程序,11,课堂演示-读写学生记录信息,运行结果,12,学生模仿1,13,教师示范与讲解2,14,字节流类,字节流类包括顺序输入流、管道输入输出流和过滤输入输出流等 InputStream类是最基本的输入流,它提供了所有输入流都要用的方法 最基本的输出流是OutputStream。同样,它提供了所有输出流要用到的方法 FileInputStream类和FileOutputStream类分别直接继承于InputStream类和OutputStream类,它们重写了父类中的所有方法,通过这两个类可以打开本地机器的文件,进行顺序读写操作。在进行文件的读/写操作时,会产生IOExc

7、eption异常,因此,需要捕获或声明抛出该异常,15,字节流类,通过字节流类实现文件复制,16,字节流类,BufferedInputStream和BufferedOutputStream类是从FilterInputStream类和FilterOutputStream类派生的子类,因此也称为过滤流,这两个类实现了带缓冲的过滤,当反复操作一个输入/输出流时,可以避免重复连接对象 ByteArrayInputStream和ByteArrayOutputStream称为字节数组输入和字节数组输出流 PrintStream称为打印流。PrintStream类是继承OutputStream的子类,也是一

8、种输出数据流,是一种将字符转换成字节的输出数据流(如把文本框中的字符串写到文件中),17,字符流类,Reader类继承自java.lang.Object类。Reader是抽象类,用来读取字符数据流。它的子类有BufferedReader、CharArrayReader、FilterReader、InputStreamReader、PipedReader、StringReader 与Reader类相对应的Writer类也是一个抽象类,其主要功能是写入字符数据流。Writer类的子类有BufferedWriter,CharArmyWriter,FilterWriter,OutputStreamWr

9、iter,PipedWriter,PrintWriter,StringWriter FileReader和FileWriter类是由InputStreamReader和OutputStreamWriter派生的子类,其方法也是大同小异。FileReader类使用字符方法创建文件输入流;FileWriter类使用字符方式创建文件输出流,18,字符流类,BufferedReader和BufferedWriter是由Reader和Writer派生的子类。它们是字符方式缓冲流,前者是输入缓存,后者是输出缓存,使用缓冲流可以避免频繁地从物理设备中读取信息 InputSteamReader和OutputS

10、treamWriter是由Reader和Writer派生的子类,是建立在InputStream和OutputStream类基础上的,相当于字符流和字节流之间的转换器。InputSteamReader从输入流中读取字节数据,并按照一定的编码方式将其转换为字符数据;而OutputStreamWriter则将字符数据转换成字节数据,再写入到输出流,19,课堂演示字符流类读写操作,【案例7-2】以命令行方式开发JAVA应用程序 【案例学习目标】了解字符流类的含义,掌握Reader和Writer的常用方法,掌握FileReader和FileWriter的常用方法,掌握BufferedReader和Buf

11、feredWriter的常用方法,掌握InputStreamReader 和OutputStreamWriter的常用方法,会利用OutputStreamReader类和OutputStreamWriter字符流类完成读写操作 【案例知识要点】FileReader和FileWriter、FileReader和FileWriter、BufferedReader和BufferedWriter、InputStreamReader和OutputStreamWriter 【案例完成步骤】 编写程序 运行程序,20,课堂演示-字符流类读写操作,运行结果,21,学生模仿2,22,教师示范与讲解3,任务一:序

12、列化登录用户信息,案例分析,23,PrintWriter,打印输出流类PrintWriter是建立在Writer基础上的流,可以实现按Java基本数据类型为单位进行文本文件的写入。与DataOutputStream类似,PrintWriter也是有输出方法但无目的地,PrintWriter必须与一个输出流(如OutputStreamWriter,FileOutputStream)结合使用 PrintWriter类使用的关键代码如下: public static void main(String args) throws IOException int iLen; String sTest=“P

13、rintWriter Demon“; iLen=sTest.iLength( ); char buf =new chariLen; sTest.getChars(0,iLen, buf, 0); OutputStreamWriter osWriter=new OutputStreamWriter(System.out); PrintWriter pWriter=new PrintWriter(osWriter); pWriter.write(sTest); pWriter.flush( ); ,24,对象的序列化,对象通过写出描述自己状态的值来记录自己的这个过程叫对象的序列化 为了使一个对象能

14、够被读取或者写入,这个对象的定义类必须实现java.io.Serializable接口或者java.io.Externalizable接口。Serializable接口是一个指示器接口,其中没有定义任何成员,只表示一个对象可以被序列化 Java的序列化机制可以使对象和数组的存储过程自动化。要实现序列化时,使用ObjectOutputStream类存储对象,使用ObjectInputStream类恢复对象,25,课堂演示序列化登录用户信息,【案例7-3】序列化登录用户信息 【案例学习目标】理解对象序列化的含义,掌握ObjectInputStream和ObjectOutputStream的常用方法

15、,能应用对象序列化保存对象信息 【案例知识要点】对象序列化、ObjectInputStream类、ObjectOutputStream类 【案例完成步骤】 编写程序 运行程序,26,课堂演示-序列化登录用户信息,运行结果,27,学生模仿3,28,课堂实践,1.实践目标分析 在“案例7-1”的基础上,完成下列操作。 (1)将学生信息以“罗华:女:22:南昌”的格式保存在student.txt文件中(每位学生占一行)。 (2)可以保存多个学生记录到student.txt文件。(3)可以循环读取保存在student.txt文件中的学生记录。,29,本课小结,1.掌握File类的应用 2.掌握RandomAccessFile类的应用 3.掌握标准输入/输出 4.掌握字节流、字符流类的应用,30,课外拓展,设计一个程序,模拟Windows资源管理器的功能,实现目录和文件的复制功能。 (1)选择源文件和目标文件后,使用字节流或字符流的方式完成文件的的复制操作。 (2)使用递归算法完成目录(含子目录和文件)的复制。 (3)程序的参考界面如下图所示。,

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

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

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