Java(九)----File类

  • 文件夹 Directory : 存储文件的容器,防止文件重名而设置,文件归类,文件夹本身不存储任何数据, 计算专业数据称为 目录

  • 文件 File : 存储数据的,同一个目录中的文件名不能相同

  • 路径 Path : 一个目录或者文件在磁盘中的位置

    • c:\jdk8\jar 是目录的路径,是个文件夹的路径

    • c:\jdk8\bin\javac.exe 是文件的路径

  • File类,描述目录文件和路径的对象

  • 平台无关性(适配其他操作系统)

1 File类的构造方法

  • File (String pathname)传递字符串的路径名

  • File(String parent,String child)传递字符串的父路径,字符串的子路径

  • File(File parent,String child)传递File类型的父路径,字符串的子路径

 public static void main(String[] args) {
        fileMethod03();
    }
    /**
     * File(File parent,String child)传递File类型的父路径,字符串的子路径
     */
    public static void fileMethod03(){
        File parent = new File("C:/Java/jdk1.8.0_221");
        String child = "bin";
        File file = new File(parent,child);
        System.out.println(file);
    }

    /**
     * File(String parent,String child)传递字符串的父路径,字符串的子路径
     * C:\Java\jdk1.8.0_221\bin
     * C:\Java\jdk1.8.0_221 是 C:\Java\jdk1.8.0_221\bin 的父路径
     */
    public static void fileMethod02(){
        String parent = "C:/Java/jdk1.8.0_221";
        String child = "bin";
        File file = new File(parent,child);
        System.out.println(file);
    }

    /**
     * File (String pathname)传递字符串的路径名
     */
    public static void fileMethod(){
        //字符串的路径,变成File对象
        File file = new File("C:\\Java\\jdk1.8.0_221\\bin");
        System.out.println(file);
    }

2 File类的创建方法

  • boolean createNewFile()创建一个文件,文件路径写在File的构造方法中

  • boolean mkdirs()创建目录(文件夹),目录的位置和名字写在File的构造方法中

    //创建文件夹 boolean mkdirs()
    public static void fileMethod02(){
        File file = new File("C://Java//1.txt");
        boolean b = file.mkdirs();
        System.out.println("b = " + b);
    }

    //创建文件 boolean createNewFile()
    public static void fileMethod() throws IOException {
        File file = new File("C://Java//1.txt");
        boolean b = file.createNewFile();
        System.out.println("b = " + b);
    }

3 File类的删除方法

  • boolean delete() 删除指定的目录或者文件,路径写在File类的构造方法

    • 不会进入回收站,直接从磁盘中删除了,有风险

    • 若文件打开,没有文件,没有权  则会删除失败

    public static void fileMethod03(){
        File file = new File("C:/Java/aaa");
        boolean b = file.delete();
        System.out.println("b = " + b);
    }

4 File类判断方法

  • boolean exists() 判断构造方法中的路径是否存在

  • boolean isDirectory()判断构造方法中的路径是不是文件夹

  • boolean isFile()判断构造方法中的路径是不是文件

  • boolean isAbsolute() 判断构造方法中的路径是不是绝对路径

    //boolean exists()    判断构造方法中的路径是否存在
    public static void fileMethod07() {
        File file = new File("D:\\第一阶段:JavaSE核心基础");
        boolean b = file.exists();
        System.out.println("b=" + b);
    }

    //boolean isDirectory()判断构造方法中的路径是不是文件夹
    public static void fileMethod08() {
        File file = new File("D:\\第一阶段:JavaSE核心基础");
        boolean b = file.isDirectory();
        System.out.println("b=" + b);
    }
    //boolean isFile()判断构造方法中的路径是不是文件
    //boolean isDirectory()判断构造方法中的路径是不是文件夹
    public static void fileMethod09() {
        File file = new File("D:\\第一阶段:JavaSE核心基础");
        boolean b = file.isFile();
        System.out.println("b=" + b);
    }

4.1 绝对路径

  • 绝对路径

    • 在磁盘中的路径具有唯一性

    • Windows系统中,盘符开头 C:/Java/jdk1.8.0_221/bin/javac.exe

    • Linux或者Unix系统,  /  开头,磁盘根 /usr/local

    • 互联网路径 :www.baidu.com

      • https://item.jd.com/100007300763.html

      • https://pro.jd.com/mall/active/3WA2zN8wkwc9fL9TxAJXHh5Nj79u/index.html

  • 相对路径

    • 必须有参照物

    • C:/Java/jdk1.8.0_221/bin/javac.exe

    • bin是参考点 : 父路径 C:/Java/jdk1.8.0_221

    • bin是参考点 : 子路径 javac.exe

    • bin参考点: 父路径使用 ../表示

    /**
     * boolean isAbsolute() 判断构造方法中的路径是不是绝对路径
     * 不写绝对形式的路径,写相对形式的,默认在当前的项目路径下
     */
    public static void fileMethod10(){
        File file = new File("C:/Java/jdk1.8.0_221/bin/javac.exe");
        boolean b1 = file.isAbsolute();
        System.out.println("b = " + b1);

        File file2 = new File("javac.exe");
        boolean b2 = file2.isAbsolute();
        System.out.println("b = " + b2);
    }

5 File类获取的方法

  • File getAbsoluteFile() 获取绝对路径,返回值是File类型

  • File getParentFile() 获取父路径,返回值是File类型

  • String getName() 获取名字,File构造方法中的路径的名字

  • String getPath() 获取File构造方法中的路径,完整的路径转成String返回

  • long length()获取文件的字节数

/**
* File类的获取方法
* - File getAbsoluteFile() 获取绝对路径,返回值是File类型
* - File getParentFile() 获取父路径,返回值是File类型
*/
public static void fileMethod02(){
    File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
    //获取绝对路径
    File absoluteFile = file.getAbsoluteFile();
    System.out.println("absoluteFile = " + absoluteFile);
    //获取父路径
    File parentFile = file.getParentFile().getParentFile();
    System.out.println("parentFile = " + parentFile);
    //文件的字节数
    long length = file.length();
    System.out.println("length = " + length);
}

/**
* File类获取方法
* - String getName() 获取名字,File构造方法中的路径的名字
* - String getPath() 获取File构造方法中的路径,完整的路径转成String返回
*/
public static void fileMethod(){
    File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
    //getName()获取名字
    String name = file.getName();
    System.out.println("name = " + name);

    //getPath()构造方法参数,转成字符串
    String path = file.getPath();
    System.out.println("path = " + path);
}

6 File类的方法listFiles()

返回值是File[] 数组 , 存储了多个File对象, 方法的作用是遍历当前的文件夹

    public static void main(String[] args) {
        //fileMethod();

        foreachDir(new File("C:\\Java\\jdk1.8.0_221"));
    }
    /**
     * 目录的递归遍历 : 传递参数,遍历哪个路径,传递过来
     */
    public static void foreachDir(File dir){
        System.out.println(dir);
        //listFiles()遍历目录  C:\Java\jdk1.8.0_221
        File[] files = dir.listFiles();
        //遍历数组,取出数组中的File对象
        //是遍历到的所有文件的全路径 (绝对路径)
        for(File f : files){
            //判断遍历到的路径是不是文件夹
            if(f.isDirectory()) //C:\Java\jdk1.8.0_221\jre  ,进入继续遍历
                //递归调用自己,传递路径
                foreachDir(f);
            else
                System.out.println(f);
        }
    }

    /**
     * 遍历目录
     */
    public static void fileMethod(){
        File file = new File("C:\\Java\\jdk1.8.0_221");
        File[] files = file.listFiles();
        for(File f : files){
            System.out.println(f);
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值