1、单元 17File 类的使用单元目标 掌握文件、目录的概念; 掌握文件命名和文件属性的查询; 掌握文件目录处理和创建文件夹;学习任务1.任务描述编写一文件管理程序,可通过文件选择对话框选择路径,输入文件名创建文件。或通过文件选择对话框删除选中的文件,并查看选中文件的属性。2.运行结果知识准备17.1 File 文件概念File 文件类提供了操作系统目录管理的功能,主要用于文件命名、文件属性查询以及管理文件目录、创建文件夹等操作。但是 File 类不能对文件内容进行读写操作。File 类位于 java.io 包中。17.2 File 文件的创建File 类对象表示文件或目录,通过 File 类的
2、构造方法可以创建 File 类对象,下面是 File 类中常用的构造方法。 File(String pathname):通过制定的路径名字符串 pathname 创建一个 File对象。 File(String parent, String child):根据父路径字符串 parent 及子路径字符串文件管理程序设计文件管理程序设计child 创建一个 File 对象。 File(File parent, String child):根据指定的父 File 对象 parent 以及子路径的字符串 child 创建一个 File 对象。下面代码分别通过 Fille 类构建方法创建 File 对象
3、:File f1=new File(“out.txt”);/表示在当前目录下的 out.txtFile f2=new File(“temp”,”out.txt”);/表示在 temp 子目录下的out.txtFile directory=new File(“temp”);File f3=new File(directory,”out.txt”);/表示在 temp 子目录下的out.txt经验:经验:File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的路径名将永不改变。17.3 File 类常用的方法17.3.1 File 类与文件名称有关的方法 public String
4、getName()返回由此 File 对象表示的文件或目录的名称。 public String getPath() 将此 File 对象转换为一个路径名字符串。 public String getAbsolutePath() 返回 File 对象的绝对路径名字符串。 public String getParent() 返回此 File 对象的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 public boolean renameTo(File dest)重新命名此 File 对象表示的文件。17.3.2 获取文件信息的操作 boolean exists( ):测试此
5、File 对象表示的文件或目录是否存在。 booleancanWrite ( ): 测试应用程序是否可以修改此 File 对象表示的文件。 booleancanRead ( ): 测试应用程序是否可以读取此 File 对象表示的文件。 booleanisFile():测试此 File 对象表示的文件是否是一个标准文件。 booleanisDirectory ():测试此 File 对象表示的文件是否是一个目录。 booleanisAbsolute( ):测试此 File 对象是否为绝对路径名。 boolean isHidden():测试此 File 对象指定的文件是否是一个隐藏文件。 long
6、lastModified ( ):返回文件最后一次被修改的时间。 long length():返回文件的长度。【实例 5-1】File 类的主要方法演示。 【源代码】import java.io.*;class FileMethodspublic static void main(String args)File f1 = new File(c:java, abc.txt);System.out.println(文件名:+ f1.getName();System.out.println(路径:+ f1.getPath();System.out.println(绝对路径:+ f1.getAbso
7、lutePath();System.out.println(f1.exists()?文件存在:文件不存在);System.out.println(f1.isDirectory()?文件是目录:文件不是目录);System.out.println(f1.isFile()?文件是普通文件:文件可能是命名管道);if(f1.canRead()System.out.println(可以读取此文件);elseSystem.out.println(不可以读取此文件);if(f1.canWrite()System.out.println(可以写入到此文件);elseSystem.out.println(不可
8、以写入到此文件);System.out.println (此文件最后修改时间是1970年1月1日后的+f1.lastModified()+秒);该程序产生的输出如下:文件名:abc.txt路径:c:javaabc.txt绝对路径:c:javaabc.txt文件不存在文件不是目录文件可能是命名管道不可以读取此文件文件管理程序设计不可以写入到此文件此文件最后修改时间是 1970 年 1 月 1 日后的 0 秒17.3.3 File 文件创建、删除操作File 类常用的文件信息获取方法: boolean createNewFile():如果 File 对象所表示的文件不存在并成功创建则返回 true
9、,否则返回 false。 boolean delete (): 删除此 File 对象表示的文件或目录,目录必须为空才能删除,删除成功返回 true,否则返回 false。【实例 5-2】通过程序删除指定文件。 【源代码】import java.io.*;public class DeleteFileDemo public static void main(String args) File f = new File(c:/del/a.txt);File dir = new File(c:/del);boolean b2=dir.delete();if(b2)System.out.printl
10、n(文件夹 c:/del 成功删除);elseSystem.out.println(文件夹 c:/del 删除失败);boolean b1=f.delete();if(b1)System.out.println(文件 a.txt 成功删除);elseSystem.out.println(文件 a.txt 删除失败);该程序产生的输出如下:文件夹 c:/del 删除失败文件 a.txt 删除失败17.3.4 目录操作1. booleanmkdir ( ) :创建此 File 对象指定的目录。2. boolean mkdirs():父目录不存在自动创建。3. String list () File
11、 类支持在目录中得到一组文件的方法。 此方法返回由此 File 对象所表示的目录中的文件和目录的名称所组成字符串数组。4. File listFiles() :返回一个 File 对象数组,这些 File 对象表示此目录中文件管理程序设计的文件。5. String list(FilenameFilter filter): 列出指定类型的文件或子目录, 返回内容必须满足特定过滤器。6. File listFiles(FilenameFilter filter): 列出指定类型的文件或子目录,返回内容必须满足特定过滤器。7. FilenameFilter:是一个接口, 接口有唯一方法 boolea
12、naccept(File dir,String name),该方法用于判断 dir 、name 指定文件是否为需要类型。自己只要创建一个类,实现此接口,就可实现按自己的需要过滤文件。【实例 5-3】 列出指定目录下的所有 Java 源文件。 【源代码】import java.io.*;class FileAccept implements FilenameFilterString extName =;FileAccept(String extName)this.extName = extName;public boolean accept(java.io.File file, String f
13、ileName)return fileName.endsWith(extName);public class ListSpecialFiles public static void main(String args) File dir = new File(E:/javaproject);FileAccept con = new FileAccept(java);String fileNames = dir.list();System.out.println(list all files . + fileNames.length);for(int i=0;ifileNames.length;i
14、+)System.out.println(fileNamesi);fileNames = dir.list(con);System.out.println(list java files . + fileNames.length);for(int i=0;i 0 & index fileName.length() - 1)String extension = fileName.substring(index +1).toLowerCase();if (extension.equals(ext)return true;return false;public String getDescripti
15、on() if (ext.equals(xls)return Microsoft Excel文件(*.xls);if(ext.equals(exe)return 可执行文件(*.exe);return ;该程序产生的输出如下:【注意】File 对象代表的可能是文件也可能是文件夹;File 不涉及文件读写操作;File 对象垃圾收集不会删除磁盘文件;任务实训1.实训目的掌握文件类的常用方法;了解 Java 的目录管理方法;了解 Java 的 java.io 包。2.实训内容在 C:test 文件夹下创建一个文件 example.txt,然后列出该文件的绝对路径、上一级目录以及该文件的最后修改时间和文件大小。文件管理程序设计
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。