跟着老侯玩编程 跟着老侯玩编程
首页
  • 基础语法
  • 网络编程
  • 设计模式
  • 基础语法
  • 基础进阶
  • 课程目录
  • 码农宝典
网盘 (opens new window)
留言
首页
  • 基础语法
  • 网络编程
  • 设计模式
  • 基础语法
  • 基础进阶
  • 课程目录
  • 码农宝典
网盘 (opens new window)
留言
  • 语法基础

    • 聊聊环境变量
    • 永不过时的HelloWorld
    • 标识符
    • 数据类型
    • 运算符
    • 语句
    • 数组
    • 方法详解
    • 类和对象
    • 类的成员
    • 类的继承
    • 类的形式
    • 封装和多态
    • 接口和Lambda表达式
    • 泛型编程
    • 常用API之函数式接口
    • 常用API
    • 异常机制
    • 多线程
    • 常用API之File类
      • 构造方法
      • 常用 API
      • 递归
        • 递归求阶乘
        • 递归遍历目录
    • IO流
    • 集合
    • 常用API之Stream流
    • 网络编程
    • 枚举
    • 注解和反射
  • 基础进阶

    • MySQL基础
    • 数据库-JDBC
    • HTML基础
    • CSS基础
    • JavaScript-基础
    • 服务器-Servlet
    • 服务器-Servlet3
    • 动态网页-JSP
    • Ajax
    • 前端项目工程化
    • ECMA2015
    • 模块化规范
  • Java
  • 语法基础
舞动的代码
2022-05-17

常用API之File类

它是文件和目录路径名的抽象表示,文件和目录是可以通过 File 封装成对象的

对于 File 而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的

# 构造方法

方法名 说明
File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例
File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File 实例
File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File 实例

# 常用 API

方法名 说明
public booleancreateNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空 文件
public boolean mkdir() 创建由此抽象路径名命名的目录
public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
public boolean isDirectory() 测试此抽象路径名表示的 File 是否为目录
public boolean isFile() 测试此抽象路径名表示的 File 是否为文件
public boolean exists() 测试此抽象路径名表示的 File 是否存在
public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
public String getPath() 将此抽象路径名转换为路径名字符串
public String getName() 返回由此抽象路径名表示的文件或目录的名称
public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的 File 对象数组
public boolean delete() 删除由此抽象路径名表示的文件或目录

# 递归

以编程的角度来看,递归指的是方法定义中调用方法本身的现象

把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解

递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算

# 递归求阶乘

用递归求 5 的阶乘,并把结果在控制台输出

public class DiGuiDemo01 {
    public static void main(String[] args) {
        // 调用方法
        int result = jc(5);
        // 输出结果
        System.out.println("5 的阶乘是:" + result);
    }

    // 定义一个方法,用于递归求阶乘,参数为一个 int 类型的变量
    public static int jc(int n) {
        // 在方法内部判断该变量的值是否是 1
        if (n == 1) {
            // 是:返回 1
            return 1;
        } else {
            // 不是:返回 n*(n-1)!
            return n * jc(n - 1);
        }
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 递归遍历目录

给定一个路径,通过递归完成遍历该目录下所有内容,并把所有文件的绝对路径输出在控制台

public class DiGuiDemo02 {
    public static void main(String[] args) {
        // 根据给定的路径创建一个File对象
        // File srcFile = new File("E:\\itcast");
        File srcFile = new File("E:\\itheima");
        // 调用方法
        getAllFilePath(srcFile);
    }

    // 定义一个方法,用于获取给定目录下的所有内容,参数为第1步创建的File对象
    public static void getAllFilePath(File srcFile) {
        // 获取给定的File目录下所有的文件或者目录的File数组
        File[] fileArray = srcFile.listFiles();
        // 遍历该File数组,得到每一个File对象
        if (fileArray != null) {
            for (File file : fileArray) {
                // 判断该File对象是否是目录
                if (file.isDirectory()) {
                    // 是:递归调用
                    getAllFilePath(file);
                } else {
                    // 不是:获取绝对路径输出在控制台
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
多线程
IO流

← 多线程 IO流→

Theme by Vdoing | Copyright © 2013-2022 冀ICP备16006233号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×