java中File类方法详解

  • 1、构造方法
  • 2、File类创建和删除功能
  • 3、File类的判断功能
  • 4、File类的获取功能和修改名字功能
  • 5、File 类的其他获取功能
  • 获取路径下所有文件
  • 删除指定的目录(包括子目录)


1、构造方法

  • File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
  • 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());
}

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));
}

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);
    }
}
获取路径下所有文件
//获取路径下所有文件
    public static boolean readfile(String filepath) throws FileNotFoundException, IOException {
        try {

            File file = new File(filepath);
            if (!file.isDirectory()) {
//                System.out.println("文件");
//                System.out.println("path=" + file.getPath());
//                System.out.println("absolutepath=" + file.getAbsolutePath());
//                System.out.println("name=" + file.getName());

            } else if (file.isDirectory()) {
                //System.out.println("文件夹");
                String[] filelist = file.list();
                for (int i = 0; i < filelist.length; i++) {
                    File readfile = new File(filepath + "\\" + filelist[i]);
                    if (!readfile.isDirectory()) {
                        path.add(readfile.getPath());
                        // System.out.println("path=" + readfile.getPath());
                        absolutePath.add(readfile.getAbsolutePath());
                        // System.out.println("absolutepath=" + readfile.getAbsolutePath());
                        fileName.add(readfile.getAbsolutePath());
                        //System.out.println("name=" + readfile.getName());
                    } else if (readfile.isDirectory()) {
                        readfile(filepath + "\\" + filelist[i]);
                    }
                }

            }

        } catch (FileNotFoundException e) {
            System.out.println("readfile()   Exception:" + e.getMessage());
        }
        return true;
    }
删除指定的目录(包括子目录)
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();
    }
}