内容正文:
单元八 Java的输入输出
授课学时:8学时
主讲:
教学目标
教学重点与难点
新课导入与项目展示
项目1-流与文件的基本操作
项目2-以对象为单位读写数据
项目3 -文件的压缩和解压缩
项目4 -文件选择对话框
主要内容
教学目标
知识
目标
流的基本概念
字节流和字符流的定义、节点流和过滤流的定义
使用流进行数据输入输出操作的基本过程
熟悉常用的输入输出流类
文件的随机读写、文件与目录的管理类File
技能
目标
掌握流对象的创建
掌握各种流类中常见方法的使用
熟练使用File类
教学重点及难点
教学
重点
使用流进行输入输出操作的步骤
熟悉常见输入输出流类
教学
难点
在具体应用中如何选择适当的输入输出流
新课导入与项目展示
项目1:流与文件的基本操作。
项目2:以对象为单位读写数据。
项目3:文件的压缩和解压缩
项目4:文件选择对话框
项目描述
任务1-1:获取文件属性
任务分析
文件或目录的属性主要是指文件的名字、大小、是否可写、是否可读、最后的修改日期和是否隐藏等属性。Java.io包中File类提供了获得了这些属性得方法。本案例将如何演示如何使用这些方法获得文件或目录得属性;
任务1-1:获取文件属性
相关知识点
File类属于java.io包,它提供了一种与机器无关的方式来描述一个文件对象的方法,利用File类的方法可以方便地进行文件管理。
文件或目录的生成:
public File(String path):如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File表示的是文件。
public File(String path,String name):path是路径名,name是文件名。
public File(File dir,String name):dir是路径名,name是文件名。
任务1-1:获取文件属性
相关知识点
文件名的处理:
String getName():得到一个文件的名称(不包括路径);
String getPath():得到一个文件的路径名;
String getAbsolutePath():得到一个文件的绝对路径名;
String getParent():得到一个文件的上一级目录名;
String renameTo(Fiule newName):更改当前文件的文件名。
普通文件信息和工具:
long lastModified():得到文件最近一次修改的时间;
long length():得到文件的长度,以字节为单位;
boolean delete():删除当前文件。
任务1-1:获取文件属性
相关知识点
文件属性测试:
boolean exists():测试当前File对象所指示的文件是否存在;
boolean canWrite():测试当前文件是否可写;
boolean canRead():测试当前文件是否可读;
boolean isFile():测试当前文件是否是文件(不是目录);
boolean isDirectory():测试当前文件是否是目录。
目录操作:
boolea mkdir( ):根据当前对象生成一个由该对象指定的路径;
string list( ):列出当前目录下的文件。
任务1-1:获取文件属性
任务实施
代码实现:
【程序文件:GetFileProperty.java】
技能拓展任务
本任务实现了对单个文件或目录属性的读取,我们也可以利用File同时获得多个目录或文件的信息。
任务1-2:使用字符流复制文件
任务分析
本任务实现利用字符流复制文件的功能,在窗体上通过文本框输入源文件和目标文件,单击“复制”按钮,进行复制;
利用源文件建立File对象,并建立相应的字符输入流对象;利用目标文件建立另一个File对象,并建立相应的字符输出流对象;再利用字符输出流对象的read( )方法读数据和输出流对象的write( )方法写数据,完成复制。
任务1-2:使用字符流复制文件
相关知识点
Reader是处理所有字符输入流类的父类。主要的方法有:
int read( ):读取一个字符,返回值为读取的字符。
int read(char cbuf[ ]):读取一系字符到数组cbuf[]中,返回值为实际读取的字符数量。
int read(char cbuf[ ],int off,int len ):读取len个字符,从数组cbu[ ]的下标off处开始存放,返回值为实际读取的字符数量,该方法必须由子类实现。
boolean markSupported( ):判断当前流是否支持标记。
void markSupported(int readAheadLimit ):标记当前,最多支持readAheadLimit个字符串回溯。
vo