File类

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

File类的使用:

  1. File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
  2. File类声明在java.io包下
  3. File类涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法。
    并未涉及到写入或读取文件内容的操作。如果需要读取或者写入文件内容,必须使用IO流来完成
  4. 后续File类的对象常会作为参数传递到流的构造器中,指明写入或读取的"终点"

创建File类的实例:

  • File(String filepath) //相对于当前的路径
  • File(String parentPath,String childPath) //父路径,子路径
  • File(File parentFile,String childPath) //父File文件,子路径
        //构造器1
        File f1=new File("HA.txt");
        File f2=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io\\hah.txt");
        System.out.println(f1);  //HA.txt
        System.out.println(f2);  //D:\Idea 2019\idea\sc\src\com\io\hah.txt
        //构造器2
        File f3=new File("D:\\Idea 2019","idea");
        System.out.println(f3);  //D:\Idea 2019\idea
        //构造器3
        File f4=new File(f3,"he.txt");
        System.out.println(f4);  //D:\Idea 2019\idea\he.txt

File类的方法:
获取:

  • String getAbsolutePath():获取绝对路径

  • String getPath():获取路径

  • String getName():获取名称

  • String getParent():获取上层目录路径。若无,返回null

  • long length():获取文件长度(字节数)。不能获取目录长度

  • long lastModified():获取最后一次修改时间,毫秒值。可以转换成Date。
    如下两个方法适用于文件目录:

  • String[] list():获取指定目录下的所有文件或者文件目录的名称数组

  • File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组

        File f1=new File("hah.txt");
        File f2=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io\\hah.txt");
        
        System.out.println(f1.getAbsolutePath());  //D:\Idea 2019\idea\sc\hah.txt
        System.out.println(f1.getPath());  //hah.txt
        System.out.println(f1.getName());  //hah.txt
        System.out.println(f1.getParent());  //null
        System.out.println(f1.length());  //0
        System.out.println(f1.lastModified());  //0
        System.out.println();
        System.out.println(f2.getAbsolutePath());  //D:\Idea 2019\idea\sc\src\com\io\hah.txt
        System.out.println(f2.getPath());  //D:\Idea 2019\idea\sc\src\com\io\hah.txt
        System.out.println(f2.getName());  //hah.txt
        System.out.println(f2.getParent());  //D:\Idea 2019\idea\sc\src\com\io
        System.out.println(f2.length());  //10
        System.out.println(f2.lastModified());  //1596289147982
        System.out.println(new Date(f2.lastModified()));  //Sat Aug 01 21:39:07 CST 2020

        File f3=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io");

        String[] list=f3.list();
        for (String s:list){
            System.out.println(s);  //hah.txt  io.java
        }

        File[] files=f3.listFiles();
        for(File f:files){
            System.out.println(f);  //D:\Idea 2019\idea\sc\src\com\io\hah.txt  D:\Idea 2019\idea\sc\src\com\io\io.java
        }

判断:

  • boolean isDirectory():判断是否是文件目录
  • boolean isFile():判断是否是文件
  • boolean exists():判断是否存在
  • boolean canRead():判断是否可读
  • boolean canWrite():判断是否可写
  • boolean isHidden():判断是否隐藏
        File f1=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io");

        System.out.println(f1.isDirectory());  //true
        System.out.println(f1.isFile());  //false
        System.out.println(f1.exists());  //true
        System.out.println(f1.canRead());  //true
        System.out.println(f1.canWrite());  //true
        System.out.println(f1.isHidden());  //false

创建和删除:

  • boolean createNewFile():创建文件。如果文件存在,则不创建,返回false
  • boolean mkdir():创建文件目录。如果目录存在,就不创建了,如果此文件目录的上层不存在,就不创建了,返回false。
  • boolean mkdirs():创建文件目录。如果此文件目录的上层不存在,一并创建。
  • boolean delete():删除文件或文件夹
    注意:java中删除不走回收站。
        File f1=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io\\haha\\h");
        boolean b1=f1.mkdir();
        boolean b2=f1.mkdirs();
        System.out.println(b1);
        System.out.println(b2);
        f1=new File("hi.txt");
        if (!f1.exists()){
            f1.createNewFile();
            System.out.println("succ");
        }else {
            f1.delete();
            System.out.println("failure");
        }

问:在同目录下创建一个文本,怎么创建呢?

        File f1=new File("D:\\Idea 2019\\idea\\sc\\src\\com\\io\\hah.txt");
        //创建一个与file同目录下的另外一个文件,名字叫haha.txt
        File destFile=new File(f1.getParent(),"haha.txt");
        boolean newFile=destFile.createNewFile();
        if (newFile){
            System.out.println("创建成功");
        }
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页