File类的相关方法

java.io.File类


  • 文件和路径名的抽象表达形式
  • java把电脑中的文件和文件夹(目录)封装了一个File类,我们可以使用File类对文件和文件夹进行如下操作
    1. 创建一个文件/文件夹
    2. 删除
    3. 获取
    4. 判断文件/文件夹是否存在
    5. 文件夹遍历
    6. 获取文件大小
      注:File类是一个与系统无关的类,任何的操作系统都可以使用这个类的方法
  • 重点单词

    file:文件 directory:文件夹/目录 path:路径

File类的静态成员方法 -File调用

  1. static String pathSeparator
    与系统有关的路径分隔符,打印是一个分号。 Linux(:)

    String pathSeparator = File.pathSeparator;
    System.out.println(pathSeparator); //;

  2. static char pathSeparatorChar
    与系统有关的路径分隔符。

  3. static String separator
    与系统有关的默认名称分隔,打印是windows反斜杠。Linux(/)

    String separator = File.separator;
    System.out.println(separator); //
  4. static char separatorChar
    与系统有关的默认名称分隔符。
    • 注:操作路径不能写死,因为程序可能不是在Windows下

      eg: D:\vs2019\TS改为
      "D:"+File.separator+"vs2019"+File.separator+TS"

File类构造方法


  1. File(File parent, String child)
    根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
    • File parent优点:路径是File类型,可以对路径进行操作,再创建对象

    public static void show02(){
        File parent = new File("D:\\");
        File file = new File(parent.getParent(), "b.txt");
  1. File(String pathname)
    通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
    • String name:字符串的路径名称

      1.路径可以是文件结尾/也可以文件夹结尾
      2.可以是相对/绝对路径
      3.路径可以是存在的,可以是不存在的
      注:创建File对象,只是把字符串路径封装为File对象,不考虑路径真假

    public static void show01(){
        File file = new File("D:\\vs2019\\TS\\a.txt");
        //重写了toString方法
        System.out.println(file);  //D:\vs2019\TS\a.txt  
    }
  1. File(String parent, String child)
    根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
    • 把路径分为两部分,使用灵活

      String parent:eg: "c:\\"-灵活修改
      String child:eg: "a.txt" -灵活修改

  2. File(URI uri)
    通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

常用方法 - File对象调用


创建/删除文件或文件夹


  1. public boolean createNewFile()

    由File对象调用创建,创建的是生成对象时,构造方法里的路径文件,可以是相对路径
    创建成功:true
    创建失败:false

    只能创建文件,不可创建文件夹,若书写有误,默认txt类型
    文件的路径必须存在,否则抛出异常

//由于方法声明抛出异常,在写程序时,就会把异常扔回调用者,我们必须处理
public boolean createNewFile() throws IOException {
        SecurityManager security = System.getSecurityManager();
        if (security != null) security.checkWrite(path);
        if (isInvalid()) {
            throw new IOException("Invalid file path");
        }
        return fs.createFileExclusively(path);
    }
    private static void show01() {
        //报错
        //File file = new File("D:\\vs2019\\TS");
        //file.createNewFile();

        //创建成功,注意用于有无权限访问文件夹
        File file = new File("D:\\a.txt");
        try {
            System.out.println(file.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
  1. public boolean mkdir()

    创建单级文件夹,由File生成对象时,构造方法的参数创建

    private static void show01() {
        File file = new File("文件夹1\\子文件夹");
        System.out.println(file.mkdir());//false

        //File file = new File("文件夹1");
        // System.out.println(file.mkdir()); true
    }
}
  1. public boolean mkdirs()

    创建多级文件夹,也可以时单级的,绝对/相对都可以

    private static void show01() {
        File file = new File("文件夹1\\子文件夹");
        System.out.println(file.mkdirs());  //true
    }
    //如果书写错误,还是创建的文件
}
  1. public boolean delete()

    删除构造方法给出的文件/文件夹
    false:文件夹里有内容,构造方法的参数路径不存在
    注:直接在硬盘删除,不走回收站

获取功能的方法


  1. public String getAbsolutePath()

    获取构造方法中的绝对路径

    private static void show01() {
        File file = new File("D:\\vs2019\\TS");
        String file1 = file.getAbsolutePath();
        System.out.println(file);  //D:\vs2019\TS

        File file0 = new File("a.txt");
        String file02 = file0.getAbsolutePath();
        //当前写程序的相对文件下的,绝对路径
        System.out.println(file02);   //C:\Users\Administrator\Desktop\java_code\a.txt
        //实际也可以写(file2.toString()),底部调用的是getPath()

    }
  1. public String getPath()

    与上面不同,获取构造方法的路径,是什么就是什么

  2. public String getName()

    获取构造方法中的结尾文件/或者文件夹

  3. public long length()

    获取的是构造方法指定的文件大小,以字节为单位Byte
    注:返回0 的情况 - 文件是没有大小单位的,路径不存在

判断功能方法


  1. public boolean exists()

    File对象调用,文件/目录存在返回True。否则false
    也可以判断相对路径下的文件

  2. public boolean isDirectory()

    判断构造方法中给的路径是否以文件结尾

  3. public boolean isFile

    判断构造方法中给的路径是否以文件结尾
    注:前提需要路径存在

File类遍历文件/文件夹的功能


  1. public String[] list()

    用于遍历构造方法中的路径,返回的时一个包含目录中所有子目录与文件的字符串数组,但仅限当前目录下,不会向下递归

    private static void show01() {
        File file = new File("C:\\Users\\Administrator\\Desktop\\java_code");
        String[] list = file.list();
        for(String str : list) {
            System.out.println(str);
        }
    }
    /*
.idea
.vscode
demo01
demo02
demo03
    */
  1. public File[] listFiles()

    同上,不过返回的是File数组,将文件/文件夹路径封装为File对象

    private static void show01() {
        File file = new File("C:\\Users\\Administrator\\Desktop\\java_code");
        File[] list = file.listFiles();
        for(File str : list) {
            System.out.println(str);
        }
    }

    /*
C:\Users\Administrator\Desktop\java_code\.idea
C:\Users\Administrator\Desktop\java_code\.vscode
C:\Users\Administrator\Desktop\java_code\demo01
C:\Users\Administrator\Desktop\java_code\demo02
C:\Users\Administrator\Desktop\java_code\demo03
    */
  • 注:list()与listFiles方法遍历的是构造方法的参数目录,若不存在,抛出空指针异常,如果构造方法中给的不是目录也会抛出空指针异常

转载于:https://www.cnblogs.com/huxiaobai/p/11552790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值