>[success] # io.File
1. `java.io.File`类主要用于描述文件或目录路径的抽象表示信息,可以获取文件或目录的特征信息,如:大小等
>[info] ## 常用方法
|方法声明| 功能概述|
|--|--|
|File(String pathname)| 根据参数指定的路径名来构造对象|
|File(String parent, String child) |根据参数指定的父路径和子路径信息构造对象|
|File(File parent, String child) |根据参数指定的父抽象路径和子路径信息构造对象|
|boolean exists()| 测试此抽象路径名表示的文件或目录是否存在|
|String getName() |用于获取文件的名称|
|long length() |返回由此抽象路径名表示的文件的长度|
|long lastModified() |用于获取文件的最后一次修改时间|
|String getAbsolutePath() |用于获取绝对路径信息|
|boolean delete() |用于删除文件,当删除目录时要求是空目录|
|boolean createNewFile() |用于创建新的空文件|
|boolean mkdir() |用于创建目录|
|boolean mkdirs() |用于创建多级目录|
|File[] listFiles() |获取该目录下的所有内容|
|boolean isFile() |判断是否为文件|
|boolean isDirectory() |判断是否为目录|
|File[] listFiles(FileFilter filter) |获取目录下满足筛选器的所有内容|
~~~
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest {
public static void main(String[] args) {
File f1 = new File("./a.txt");
// 判断当前的文件或目录是否存在
if (f1.exists()) {
// 获取文件名
String fileName = f1.getName();
System.out.println(fileName);
// 获取文件大小
long fileSize = f1.length();
System.out.println(fileSize);
// 获取文件最后修改时间
long lastTimeStamp = f1.lastModified();
Date lastTime = new Date(lastTimeStamp);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(lastTime);
System.out.println(str);
// 获取绝对路径
System.out.println("文件的绝对路径信息是:" + f1.getAbsolutePath());
System.out.println(f1.delete() ? "文件删除成功" : "文件删除失败");
} else {
try {
// 若文件不存在则创建新的空文件
System.out.println(f1.createNewFile() ? "文件创建成功" : "文件创建失败!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
~~~
~~~
import java.io.File;
import java.io.FileFilter;
public class FileTest {
// 自定义成员方法实现指定目录以及子目录中所有内容的打印
public static void show(File file) {
// 获取目录f3下的所有内容并记录到一维数组中
File[] filesArray = file.listFiles();
// 遍历数组
for (File tf : filesArray) {
String name = tf.getName();
// 判断是否为文件,若是则直接打印文件名称
if (tf.isFile()) {
System.out.println(name);
}
// 若是目录,则使用[]将目录名称括起来
if (tf.isDirectory()) {
System.out.println("[" + name + "]");
show(tf);
}
}
}
public static void main(String[] args) {
// 实现目录的删除和创建
File f2 = new File("d:/aa/bb/cc/dd");
if (f2.exists()) {
System.out.println("目录名称是:" + f2.getName());
System.out.println(f2.delete() ? "目录删除成功" : "目录删除失败"); // 只能删除一层
} else {
// System.out.println(f2.mkdir()? "目录创建成功": "目录创建失败"); // 创建单层目录
System.out.println(f2.mkdirs() ? "目录创建成功" : "目录创建失败"); // 创建多层目录
}
// 将指定目录中的所有内容打印出来
File f3 = new File("d:/aa");
// 获取目录f3下的所有内容并记录到一维数组中
File[] filesArray = f3.listFiles();
// 遍历数组
for (File tf : filesArray) {
String name = tf.getName();
// 判断是否为文件,若是则直接打印文件名称
if (tf.isFile()) {
System.out.println(name);
}
// 若是目录,则使用[]将目录名称括起来
if (tf.isDirectory()) {
System.out.println("[" + name + "]");
}
}
// 实现目录中所有内容获取的同时进行过滤
// 匿名内部类的语法格式:接口/父类类型 引用变量名 = new 接口/父类类型() { 方法的重写 };
/*
* FileFilter fileFilter = new FileFilter() {
*
* @Override
* public boolean accept(File pathname) {
* // 若文件名是以.avi为结尾,则返回true表示保留 否则返回false就是表示丢弃
* return pathname.getName().endsWith(".avi");
* }
* };
*/
// Lambda表达式的格式:(参数列表) -> {方法体}
FileFilter fileFilter = (File pathname) -> {
return pathname.getName().endsWith(".avi");
};
File[] filesArray2 = f3.listFiles(fileFilter);
for (File tf : filesArray2) {
System.out.println(tf);
}
// 递归
show(new File("d:/aa"));
}
}
~~~
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法