栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

File类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

File类

1.1 File类概述和构造方法

概述:

  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已,它可以是存在的,也可以是不存在的,我们做的就是通过具体的操作将这个路径的内容转换为具体的存在

构造方法:

  • 通过给定的路径名字字符串转换为抽象路径名来创建新的File实例(常用)
  • File f1 = new File("E:\File\java.txt");// java.txt文件在E:\File目录下有没有都没关系
    
  • 从父路径名字字符串和子路径名字字符串创建新的File实例
  • File f2 = new File("E:\File","java.txt");
    
  • 从父抽象路径名和子路径名字字符串创建新的File实例
  • File f3 = new File("E:\File");
    File f4 = new File(f3,"java.txt");
    
1.2 File类创建、删除功能

直接源代码展示:三个创建方法createNewFile(),mkdir(),mkdirs() 的使用

// 创建File实例
File f1 = new File("E:\File\java.txt");
// 在E:File目录下创建一个新文件java.txt
System.out.println(f1.createNewFile());//出现的异常可以使用try/catch捕获也可以主函数throws抛出IOException
// 在E:File目录下创建一个新文件夹JavaSE
File f2 = new File("E:\File\JavaSE");
System.out.println(f2.mkdir());
// 在E:File目录下创建一个多及目录JavaWEB\HTML
File f3 = new File("E:\File\JavaWEB\\HTML");
System.out.println(f3.mkdirs());

在这里为什么createNewFile()方法会出现IOException异常,而mkdir()和mkdirs()就不会出现异常呢?

答:其实是因为我们其实忽略了方法中潜在的异常:如果路径中的File目录不存在呢?或者说在多线程文件被中途删除了呢?所以系统会提示我们去处理或者抛出这个异常。

那为什么mkdir()和mkdirs()就不会出现异常呢?

答:因为mkdir()的方法内部已经对异常进行了处理,这一点可以去官方帮助文档进行查看,而mkdirs()其实是对mkdir()方法进行迭代,逐步判断有没有需要创建的目录,如果有就不创建,如果没有,就调用mkdir()方法创建目录,所以也不需要手动进行异常处理。

删除功能就是一个方法的灵活运用delete()

// 在E:FileJavaWEBHTML目录下创建一个新文件index.html
File f5 = new File("E:\File\JavaWEB\HTML\index.html");
System.out.println(f5.createNewFile());
//删除新文件index.html
System.out.println(f5.delete());
1.3 File类判断和获取功能

直接上源码展示(1.2创建的一个文件,两个目录)

// 创建实例对象
File f1 = new File("E:\File\java.txt");
// 测试此抽象路径名表示的File是否为目录
System.out.println(f1.isDirectory());
// 测试此抽象路径名表示的File是否为文件
System.out.println(f1.isFile());
// 测试此抽象路径名表示的File是否存在
System.out.println(f1.exists());
// 返回此抽象路径名的绝对路径名字符串
System.out.println(f1.getAbsolutePath());
System.out.println(f1.getAbsoluteFile());
// 将此抽象路径名转换为路径名字符串
System.out.println(f1.getPath());
// 返回由此抽象路径名表示的文件或目录的名称
System.out.println(f1.getName());
// 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
File f2 = new File("E:\File");
// 将E:File文件里的文件和目录的名称储存在strArray字符数组中
String[] strArray = f2.list();
// 遍历输出
for (String str : strArray
     ) {
    System.out.println(str);
}
// 返回此抽象路径名表示的目录中的文件和目录的File对象数组
File[] fileArray = f2.listFiles();
for (File file : fileArray
        ) {
    System.out.println(file);
}

控制台输出

false
true
true
E:Filejava.txt
E:Filejava.txt
E:Filejava.txt
java.txt
java.txt
JavaSE
JavaWEB
E:Filejava.txt
E:FileJavaSE
E:FileJavaWEB
1.4 File文件目录递归访问

遍历输出给定路径下的所有文件以及所包含的目录里的所有文件

public class FileDemo03 {
    public static void main(String[] args) {
        // 创建实例
        File f = new File("E:\File");
        getPath(f);
    }
    // 获取给定路径下的目录以及文件
    public static void getPath(File f) {
        // 将给定路径下的目录以及文件存入str数组里
        File[] arrayFile = f.listFiles();
        // 判断目录是否为空,可以提高代码健壮性
        if (arrayFile != null) {
            // 遍历
            for (File i : arrayFile
                    ) {
                if (i.isDirectory()) {
                    getPath(i);
                } else {
                    System.out.println(i);
                }
            }
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号