• Java 文件操作


    Java - 文件操作

    路径

    绝对路径

    Win

    D:\GreenPackage\ja-netfilter-all-main\scripts
    
    • 1

    Linux

    /home/demodeom/.ssh
    
    • 1

    相对路径

    • ./ 表示相对于当前文件所在的目录, 一般情况下 ./ 可以省略
    • ../ 表示相对于当前文件上一级目录
    ./ja-netfilter-all-main/scripts
    
    • 1
    ja-netfilter-all-main/scripts
    
    • 1
    ../ja-netfilter-all-main/scripts
    
    • 1
    ../../../ja-netfilter-all-main/scripts
    
    • 1

    文件 / 目录

    文件 目录

    目录 ja-netfilter-all-main/scripts

    文件 ja-netfilter-all-main/scripts.txt

    一般情况下, 带有扩展名的为文件, 比如 .txt .exe .pdf 等等

    File

    import java.io.File;
    
    • 1

    目录

    创建目录

    boolean mkdir() 创建目录, 如果目录已经存在或者父目录不存在, 返回 false; 创建成功返回 true

    make directory

    File f1 = new File("电影");
    boolean f1_res = f1.mkdir();
    System.out.println(f1_res); // true
    
    • 1
    • 2
    • 3
    File f2 = new File("电影/动作/国内/2022");
    boolean f2_res = f2.mkdir();
    System.out.println(f2_res);  // false
    
    • 1
    • 2
    • 3

    boolean mkdirs() 创建目录, 如果目录已经存在, 返回 false; 创建成功返回 true; 通常用于创建多层目录

    File f2 = new File("电影/动作/国内/2022");
    boolean f2_res = f2.mkdirs();
    System.out.println(f2_res);
    
    • 1
    • 2
    • 3
    删除目录

    boolean delete() 删除目录; 如果目录不为空, 则删除失败, 返回 false; 删除成功返回 true

    File f3 = new File("电影/动作/国内/2022");
    boolean f3_res = f3.delete();
    System.out.println(f3_res);  // true
    
    • 1
    • 2
    • 3
    File f4 = new File("电影");
    boolean f4_res = f4.delete();
    System.out.println(f4_res);  // false
    
    • 1
    • 2
    • 3

    文件

    创建文件

    boolean createNewFile()

    1. 如果文件已经存在, 返回 false
    2. 如果文件所在的目录不存在, 则抛出 IOException 异常
    File f5 = new File("1.txt");
    boolean f5_res = f5.createNewFile();
    System.out.println(f5_res);
    
    • 1
    • 2
    • 3
    File f6 = new File("aa/1.txt");
    boolean f6_res = f6.createNewFile();
    System.out.println(f6_res); // 抛出  `IOException` 异常
    
    • 1
    • 2
    • 3
    删除文件

    boolean delete() 删除文件

    1. 如果文件不存在, 则返回 false
    2. 如果文件删除成功, 则返回 true
    File f7 = new File("1.txt");
    boolean f7_res = f7.delete();
    System.out.println(f7_res);  // true
    
    • 1
    • 2
    • 3
     File f8 = new File("aa/1.txt");
     boolean f8_res = f8.delete();
     System.out.println(f8_res);  // true
    
    • 1
    • 2
    • 3

    路径

    绝对路径

    String getAbsolutePath() 获取文件/目录绝对路径

    File f9 = new File("Class01.java");
    String absPath =f9.getAbsolutePath();
    System.out.println(absPath);  // D:\Project\Java\09\Class01.java
    
    • 1
    • 2
    • 3
    File f10 = new File("");
    String absPath10 =f10.getAbsolutePath();
    System.out.println(absPath10);  // D:\Project\Java\09
    
    • 1
    • 2
    • 3
    父目录

    String getParen() 返回文件或者目录的父目录名, 如果没有指定父目录, 则返回 null

    File f13 = new File("电影/动作/国内/2022/1.txt");
    String f13Name = f13.getParent();
    System.out.println(f13Name);  // 2022
    
    • 1
    • 2
    • 3
    File f14 = new File("电影/动作/国内/2022");
    String f14Name = f14.getParent();
    System.out.println(f14Name);  // 电影/动作/国内
    
    • 1
    • 2
    • 3
    文件/目录名

    String getName() 获取文件或者目录名

    File f11 = new File("电影/动作/国内/2022");
    String f11Name = f11.getName();
    System.out.println(f11Name);
    
    • 1
    • 2
    • 3
    File f12 = new File("电影/动作/国内/2022/1.txt");
    String f12Name = f12.getName();
    System.out.println(f12Name);
    
    • 1
    • 2
    • 3
    文件/目录路径

    String getPath() 返回文件或者目录的路径

    File f16 = new File("电影/动作/国内/2022/1.txt");
    String f16Path = f16.getPath();
    System.out.println(f16Path);  // 电影\动作\国内\2022\1.txt
    
    • 1
    • 2
    • 3
    File f17 = new File("电影/动作/国内/2022");
    String f17Path = f17.getPath();
    System.out.println(f17Path);  // 电影\动作\国内\2022
    
    • 1
    • 2
    • 3

    权限

    读权限

    boolean canRead() 判断是否可以读取此文件。

    1. 如果文件不存在, 则返回 false
    2. 如果文件可读, 则返回 true
    File f18 = new File("./1.txt");
    boolean f18CanRead = f18.canRead();
    System.out.println(f18CanRead);  // false
    
    • 1
    • 2
    • 3
    File f19 = new File("./2.txt");
    boolean f19CanRead = f19.canRead();
    System.out.println(f19CanRead);  // false
    
    • 1
    • 2
    • 3
    写权限

    boolean canWrite() 判断是否可以写入。

    1. 如果文件不存在, 则返回 false
    2. 如果文件可写, 则返回 true
    File f20 = new File("./1.txt");
    boolean f20CanWrite = f20.canWrite();
    System.out.println(f20CanWrite);  // false
    
    • 1
    • 2
    • 3
    File f21 = new File("./2.txt");
    boolean f20CanWrite = f21.canWrite();
    System.out.println(f20CanWrite);  // true
    
    • 1
    • 2
    • 3

    文件属性

    long length() 返回文件的长度, 单位: 字节

    File f22 = new File("./2.txt");
    long f22Length = f22.length();
    System.out.println(f22Length);  // 29
    
    • 1
    • 2
    • 3
    File f23 = new File("电影/动作/国内/2022");
    long f23Length = f23.length();
    System.out.println(f23Length);  // 0
    
    • 1
    • 2
    • 3

    如果是目录, 则长度为 0

    long lastModified() 返回文件最后一次被修改的时间(时间戳)

    File f24 = new File("./2.txt");
    long f24LastMT = f24.lastModified();
    System.out.println(f24LastMT);  // 1667488238812
    
    • 1
    • 2
    • 3

    判断

    判断是否存在

    boolean exists() 判断文件或者目录是否存在; 如果存在, 返回 true, 否则返回 false

     File f25 = new File("./2.txt");
    boolean f25Exit = f25.exists();
    System.out.println(f25Exit);  // true
    
    • 1
    • 2
    • 3
    判断是否是标准文件

    boolean isFile() 判断路径是否是一个标准文件,

    1. 如果是标准文件, 返回 true, 否则返回 false
    2. 如果文件不存则, 返回 false
    File f26 = new File("./2.txt");
    boolean f26File = f26.isFile();
    System.out.println(f26File);
    
    • 1
    • 2
    • 3
    判断是否是目录

    boolean isDirectory() 判断路径是否是一个目录

    1. 如果是目录, 返回 true, 否则返回 false
    2. 如果目录不存则, 返回 false
    File f27 = new File("电影");
    boolean f27Dir = f27.isDirectory();
    System.out.println(f27Dir);
    
    • 1
    • 2
    • 3

    目录遍历

    String[] list() 返回指定目录下的所有文件或目录

    File f28 = new File("./");
    String[] f28Files = f28.list();
    for (int i = 0; i < f28Files.length; i++) {
    	System.out.println(f28Files[i]);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    public File[] listFiles() 返回指定目录下的所有文件或目录

    File f29 = new File("./");
    File[] f29Files = f29.listFiles();
    for (int i = 0; i < f29Files.length; i++) {
        String fileAbsPath = f29Files[i].getAbsolutePath();
    	System.out.println(fileAbsPath);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    https://zditect.com/main/java/java-escape-characters.html

    FileRead

    int read(char [] c, int offset, int len) 读取字符到c数组,返回读取到字符的个数

    读取固定的长度的内容

    File f = new File("./1.txt");
    
    FileReader fr = new FileReader(f);
    char[] a = new char[50];
    fr.read(a);
    for (int i=0; i < a.length; i++){
    	System.out.print(a[i]);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    读取所有的内容

    File f = new File("./1.txt");
    int fl = (int) f.length();
    FileReader fr = new FileReader(f);
    char[] a = new char[fl];
    fr.read(a);
    
    for (int i = 0; i < a.length; i++) {
    	System.out.print(a[i]);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    char[] 转换为字符串

    String s = String.valueOf(a)
    
    • 1

    File Write

    FileWriter(File file)

    FileWriter(File file, boolean append)

    • file File 类型的对象
    • boolean true, 表示追加; false: 表示覆盖

    覆盖写

    File f = new File("./1.txt");
    FileWriter fw = new FileWriter(f);
    fw.write("你好 Java");
    fw.close();
    
    • 1
    • 2
    • 3
    • 4

    追加写

    File f = new File("./1.txt");
    FileWriter fw = new FileWriter(f, true);
    fw.write("; 2022年11月04");
    fw.close();
    
    • 1
    • 2
    • 3
    • 4

    注: 不能忘记关闭文件 fw.close();

  • 相关阅读:
    MySQL高级SQL语句(开端)
    php——三篇夯实根基第一篇
    基于Hadoop的疫情信息分析与可视化研究——包含大屏可视化及预测算法
    【无标题】
    sql:1对多获取最新一条数据
    威班11月份PMP模拟考试实录
    Python实现JavaScript中AES加密有关填充问题
    SpringBoot中@AutoWired注解的静态变量
    私募基金CRM客户关系管理系统软件开发应该具备的功能清单
    vue页面缓存解决方案
  • 原文地址:https://blog.csdn.net/qq_40829735/article/details/127691931