• 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类型的父路径,字符串的子路径

    1. public static void main(String[] args) {
    2. fileMethod03();
    3. }
    4. /**
    5. * File(File parent,String child)传递File类型的父路径,字符串的子路径
    6. */
    7. public static void fileMethod03(){
    8. File parent = new File("C:/Java/jdk1.8.0_221");
    9. String child = "bin";
    10. File file = new File(parent,child);
    11. System.out.println(file);
    12. }
    13. /**
    14. * File(String parent,String child)传递字符串的父路径,字符串的子路径
    15. * C:\Java\jdk1.8.0_221\bin
    16. * C:\Java\jdk1.8.0_221 是 C:\Java\jdk1.8.0_221\bin 的父路径
    17. */
    18. public static void fileMethod02(){
    19. String parent = "C:/Java/jdk1.8.0_221";
    20. String child = "bin";
    21. File file = new File(parent,child);
    22. System.out.println(file);
    23. }
    24. /**
    25. * File (String pathname)传递字符串的路径名
    26. */
    27. public static void fileMethod(){
    28. //字符串的路径,变成File对象
    29. File file = new File("C:\\Java\\jdk1.8.0_221\\bin");
    30. System.out.println(file);
    31. }

    2 File类的创建方法

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

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

    1. //创建文件夹 boolean mkdirs()
    2. public static void fileMethod02(){
    3. File file = new File("C://Java//1.txt");
    4. boolean b = file.mkdirs();
    5. System.out.println("b = " + b);
    6. }
    7. //创建文件 boolean createNewFile()
    8. public static void fileMethod() throws IOException {
    9. File file = new File("C://Java//1.txt");
    10. boolean b = file.createNewFile();
    11. System.out.println("b = " + b);
    12. }

    3 File类的删除方法

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

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

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

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

    4 File类判断方法

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

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

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

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

    1. //boolean exists() 判断构造方法中的路径是否存在
    2. public static void fileMethod07() {
    3. File file = new File("D:\\第一阶段:JavaSE核心基础");
    4. boolean b = file.exists();
    5. System.out.println("b=" + b);
    6. }
    7. //boolean isDirectory()判断构造方法中的路径是不是文件夹
    8. public static void fileMethod08() {
    9. File file = new File("D:\\第一阶段:JavaSE核心基础");
    10. boolean b = file.isDirectory();
    11. System.out.println("b=" + b);
    12. }
    13. //boolean isFile()判断构造方法中的路径是不是文件
    14. //boolean isDirectory()判断构造方法中的路径是不是文件夹
    15. public static void fileMethod09() {
    16. File file = new File("D:\\第一阶段:JavaSE核心基础");
    17. boolean b = file.isFile();
    18. System.out.println("b=" + b);
    19. }

    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参考点: 父路径使用 ../表示

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

    5 File类获取的方法

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

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

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

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

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

    1. /**
    2. * File类的获取方法
    3. * - File getAbsoluteFile() 获取绝对路径,返回值是File类型
    4. * - File getParentFile() 获取父路径,返回值是File类型
    5. */
    6. public static void fileMethod02(){
    7. File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
    8. //获取绝对路径
    9. File absoluteFile = file.getAbsoluteFile();
    10. System.out.println("absoluteFile = " + absoluteFile);
    11. //获取父路径
    12. File parentFile = file.getParentFile().getParentFile();
    13. System.out.println("parentFile = " + parentFile);
    14. //文件的字节数
    15. long length = file.length();
    16. System.out.println("length = " + length);
    17. }
    18. /**
    19. * File类获取方法
    20. * - String getName() 获取名字,File构造方法中的路径的名字
    21. * - String getPath() 获取File构造方法中的路径,完整的路径转成String返回
    22. */
    23. public static void fileMethod(){
    24. File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
    25. //getName()获取名字
    26. String name = file.getName();
    27. System.out.println("name = " + name);
    28. //getPath()构造方法参数,转成字符串
    29. String path = file.getPath();
    30. System.out.println("path = " + path);
    31. }

    6 File类的方法listFiles()

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

    1. public static void main(String[] args) {
    2. //fileMethod();
    3. foreachDir(new File("C:\\Java\\jdk1.8.0_221"));
    4. }
    5. /**
    6. * 目录的递归遍历 : 传递参数,遍历哪个路径,传递过来
    7. */
    8. public static void foreachDir(File dir){
    9. System.out.println(dir);
    10. //listFiles()遍历目录 C:\Java\jdk1.8.0_221
    11. File[] files = dir.listFiles();
    12. //遍历数组,取出数组中的File对象
    13. //是遍历到的所有文件的全路径 (绝对路径)
    14. for(File f : files){
    15. //判断遍历到的路径是不是文件夹
    16. if(f.isDirectory()) //C:\Java\jdk1.8.0_221\jre ,进入继续遍历
    17. //递归调用自己,传递路径
    18. foreachDir(f);
    19. else
    20. System.out.println(f);
    21. }
    22. }
    23. /**
    24. * 遍历目录
    25. */
    26. public static void fileMethod(){
    27. File file = new File("C:\\Java\\jdk1.8.0_221");
    28. File[] files = file.listFiles();
    29. for(File f : files){
    30. System.out.println(f);
    31. }
    32. }

  • 相关阅读:
    简介undo log、truncate、​以及undo log如何帮你回滚事物?
    线程池的实现原理与使用详解
    Open3D 进阶(18)整体最小二乘拟合平面
    【C++风云录】梦幻般的机器人世界:探索ROS、PCL、OpenCV和更多顶尖技术
    python的datetime模块常用的语法和实例
    Redis高可用架构—Redis集群(Redis Cluster)详细介绍
    MySQL 8.0性能优化实战培训
    NAT(网络地址转换)
    百闻不如一见,4款名不见经传的极品软件,让你眼界大开
    java预备知识
  • 原文地址:https://blog.csdn.net/MrDaKai/article/details/128147066