java中File类方法详解

File类简介

  在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
  File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。

File类的相关方法

1、构造方法
  • File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
  • File(String parent,String child) 根据指定的父路径和文件路径创建一个新File对象实例
  • File(File parent,String child) 根据指定的父路径对象和文件路径创建一个新的File对象实例

代码实现过程

/*
 - File的构造函数
 - */
 public static void main(String[] args) {
     //File(String pathname)  将指定路径名转换成一个File对象
     File file = new File("D:\\1.txt");
     System.out.println(file);
     //File(String parent,String child) 根据指定的父路径和文件路径创建File对象
     File file1 =  new File("D:\\a","1.txt");
     System.out.println(file1);
     //File(File parent,String child) 根据指定的父路径对象和文件路径创建File对象
     File parent = new File("D:\\a");
     File file2 = new File(parent, "1.txt");
     System.out.println(file2);
     File file3 = new File(new File("D:\\a"),"1.txt");
     System.out.println(file3);

 }

运行结果在这里插入图片描述

2、File类创建和删除功能
  • boolean createNewFile();指定路径不存在该文件时创建文件,返回true 否则false
  • boolean mkdir() 当指定的单击文件夹不存在时创建文件夹并返回true 否则false
  • boolean mkdirs() 但指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true 否则false
  • boolean delete() 删除文件或者删除单级文件夹
  • 删除文件夹,这个文件夹下面不能有其他的文件和文件夹

代码实现过程

public static void main(String[] args) throws IOException {
    File file = new File("D:\\a\\1.txt");
    File file1 = new File("1.txt");
    boolean flag = file1.createNewFile();
    System.out.println(flag);

    File file2 = new File("b");
    boolean flag2 = file2.mkdir();
    System.out.println(flag);

    File file3 = new File("c\\d\\e");
    boolean d = file1.mkdir();
    boolean c = file1.mkdirs();
    System.out.println(d);
    System.out.println(c);
    File file4 = new File("c.txt");
    System.out.println(file4.mkdir());

    File file5 = new File("b");
    System.out.println(file2.delete());
}

运行结果在这里插入图片描述

3、File类的判断功能
  • boolean exists() 判断指定路径的文件或文件夹是否为空
  • boolean isAbsolute() 判断当前路径是否是绝对路径
  • boolean isDirectory() 判断当前的目录是否存在
  • boolean isFile() 判断当前的目录是否是一个文件
  • boolean isHidden() 判断当前路径是否是一隐藏文件

代码实现过程

public static void main(String[] args) throws IOException {
  // method();
  //  method2();
  //   method3();
  //  method4();
}
//判断文件是否存在
public static void method() throws IOException {
    File file = new File("a.txt");
    file.createNewFile();
    boolean flag = file.exists();
    System.out.println(flag);
}
//判断当前路径是否为绝对路径
public static void method2() throws IOException{
    File file = new File("D:\\a\\1.txt");
    boolean flag = file.isAbsolute();
    System.out.println(flag);
}
//判断当前是文件夹还是文件
public static void method3() throws IOException{
    File file = new File("1.txt");
    File file1 = new File("b");
    file1.mkdir();
    boolean flag = file.isDirectory();
    boolean flag2 = file1.isFile();
    System.out.println(flag);
    System.out.println(flag2);
}
//判断当前路径是否为隐藏文件
public static void method4() throws IOException{
   File file =  new File("D:\\a\\1.txt");
    System.out.println(file.isHidden());
}

运行结果

  • method()
    在这里插入图片描述
  • method2()
    在这里插入图片描述
  • method3()
    在这里插入图片描述
  • method4()
    在这里插入图片描述
4、File类的获取功能和修改名字功能
  • File getAbsoluteFile() 获取文件的绝对路径,返回File对象
  • String getAbsolutePath() 获取文件的绝对路径,返回路径的字符串
  • String getParent() 获取当前路径的父级路径,以字符串形式返回该父级路径
  • String getName() 获取文件或文件夹的名称
  • String getPath() 获取File对象中封装的路径
  • long lastModified() 以毫秒值返回最后修改时间
  • long length() 返回文件的字节数
  • boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路径

代码实现过程:

public static void main(String[] args) throws IOException {
   //  method();
   // method2();
   // method3();
   // method4();
}
public static void method(){
    File file = new File("D:\\a\\1.txt");
    File file1 = new File("1.txt");
    //以File对象返回的形式返回当前File对象所指向的绝对路径
    System.out.println(file1.getAbsoluteFile());
    //返回File对象所指向的绝对路径
    System.out.println(file1.getAbsolutePath());
}
public static void method2() throws IOException {
    File file = new File("a.txt");
    File file1 = new File("b","c.txt");
    System.out.println(file1.createNewFile());

    File parent = new File("b");
    File file2 = new File(parent,"c.txt");
    if (!parent.exists()){
        parent.mkdirs();
    }
    System.out.println(file2.createNewFile());
    System.out.println(file2.getParent());
    System.out.println(file2.getParentFile());
}
public static void method3() throws IOException{
   File file = new File("1.txt");
   File file1 = new File("D:\\a\\1.txt");
   File file2 = new File("b");

    System.out.println(file.getName());
    System.out.println(file1.getName());
    System.out.println(file2.getName());

    System.out.println(file.getPath());
    System.out.println(file1.getPath());
    System.out.println(file2.getPath());

    System.out.println(file.lastModified());
    Date date =  new Date(1556085068524L);
    System.out.println(date.toLocaleString());

    System.out.println(file.length());
    System.out.println(file2.length());
}
public static void method4() throws IOException{
    File file = new File("a.txt");
    File file1 = new File("e.txt");
    System.out.println(file.renameTo(file1));
}

运行结果

  • method()
    在这里插入图片描述
  • method2()在这里插入图片描述
  • method3()

在这里插入图片描述

  • method4()
    在这里插入图片描述
5、File 类的其他获取功能
  • String[] list(); 以字符串的形式返回当前路径下所有的文件和文件夹的名称
  • File[] listFile 以File对象的形式返回当前路径下的所有文件和文件夹名称
  • Static File[] listRoots() 获取计算机中的所有盘符
    代码实现过程
public static void main(String[] args) {
    //method();
   // method2();
    //method3();
}

public static void method(){
    File file = new File("b");
    File file1 = new File("D:\\QQ\\1916247350");
    File file2 = new File("e.txt");
    String[] files = file1.list();
    for (int i=0;i<files.length;i++){
        System.out.println(files[i]);
    }
}
public static void method2(){
    File file = new File("b");
    File file1 = new File("D:\\QQ\\1916247350");
    File file2 = new File("e.txt");

    File[] files = file1.listFiles();
    for (File file3 : files) {
        System.out.println(file3.getName());
    }
}
public static void method3(){
    File[] files = File.listRoots();
    for (File file : files) {
        System.out.println(file);
    }
}

运行结果

  • method()在这里插入图片描述
  • method2()在这里插入图片描述
  • method(3)在这里插入图片描述
练习
1、输出指定目录下的所有java文件
public static void main(String[] args) {
    File file = new File("D:\\IDEA\\IDEAprogram");
    method(file);
}
public static void method(File file){
//判断文件是够是目录文件
    if (file.isDirectory()){
        File[] files = file.listFiles();
        for (File file1 : files) {
        //判断是否为文件
            if (file1.isFile()){
            //判断文件是否是以.java结尾的文件
                if (file1.getName().endsWith(".java")){
                    System.out.println(file1.getName());
                }
            }else if (file1.isDirectory()){  
            //回调,遍历file1
                method(file1);
            }
        }
    }
}

运行结果
在这里插入图片描述

2、删除指定的目录(包括子目录)
public static void main(String[] args) {
    File file = new File("D:\\a");
    method(file);
}
//删除指定目录下的文件
public static void method(File file){
    //删除自己所有的子文件和子目录
    //获取子文件和子目录
    if (file.isDirectory()){
        File[] files = file.listFiles();
        for (File file1 : files) {
            if (file1.isFile()){
                System.out.println(file1.getName());
                //干掉它
                file1.delete();
            }else if (file1.isDirectory()){
                //继续查看
                method(file1);
            }
        }
        //干掉自己
        System.out.println(file.getName());
        file.delete();
    }
}

代码运行结果
在这里插入图片描述

学习过程中一定要稳下来,不要急,要注意多总结,以便日后复习。

  • 65
    点赞
  • 317
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值