Java—File
File类
1. 输出/写(output):把内存中的数据存储到持久化设备上
2. 输入/读(input):把持久化设备的数据读取到内存中
3. File类的创建以及文件名等获取操作
import java.io.File;
public class FileTest01 {
public static void main(String[] args) {
// 创建文件
// 路径注意使用通配符/,而不是\\
// 使不同平台下的文件路径共通
File f1 = new File("e:/培训/AClass.java");
System.out.println(f1);
File f2 = new File("e:/培训", "Hello.java");
System.out.println(f2);
File dir = new File("e:/培训");
File f3 = new File(dir, "HelloWorld.java");
System.out.println(f3);
System.out.println("------------------------");
// 获取文件路径、文件名等
File f4 = new File("HelloWorld.java");
System.out.println(f4.getAbsolutePath());
System.out.println(f4.getName());
// File中封装的是什么就是什么
System.out.println(f4.getPath());
// 获取文件大小
System.out.println(f4.length());
}
}
输出结果:
e:\培训\AClass.java
e:\培训\Hello.java
e:\培训\HelloWorld.java
------------------------
E:\javaSE\day01\day01\HelloWorld.java
HelloWorld.java
HelloWorld.java
0
4. 文件和文件夹的创建和删除等
public class FileTest02 {
public static void main(String[] args) throws IOException {
// 创建时,应该判断是否存在该目录
File f = new File("e:/abc");
if(f.exists()){
// 创建目录,若创建为true;否则为false
boolean isCreate = f.createNewFile();
System.out.println(isCreate);
}else{
System.out.println("该目录不存在,请去创建!");
// 创建目录单个,多个使用mkdirs()
boolean mkdir = f.mkdir();
System.out.println(mkdir);
}
// 删除文件delete(),一般不建议使用
// 判断是目录还是文件夹
System.out.println("----------------------------------");
File f1 = new File("E:/javaSE/day01/day01/src");
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
// 浏览e:\培训中的文件
System.out.println("----------------------------------");
File f2 = new File("e:/培训");
File[] files = f2.listFiles();
for(File file: files){
System.out.println(file);
}
}
}
5. 自定义文件过滤器
5.1 方式一:实现FilenameFilter接口
public class MyFilter01 implements FilenameFilter{
// 测试指定文件是否应该包含在某一文件列表中
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
}
5.2 方式二:实现FileFilter接口
public class MyFilter02 implements FileFilter{
// 测定指定抽象路径名是否包含在某个路径名列表中
@Override
public boolean accept(File pathname) {
return pathname.isDirectory();
}
}
测试类
public class FileTest03 {
/*
* 自定义文件过滤器
* 方式一:实现FilenameFilter
* 方式二:实现FileFilter
*/
public static void main(String[] args) {
// 创建File对象
File f = new File("e:/培训");
// 获取File对象下符合过滤条件的所有文件
//File[] files = f.listFiles(new MyFilter01());
// 获取File对象下的文件夹
File[] files = f.listFiles(new MyFilter02());
for(File file: files){
System.out.println(file);
}
}
}
6. File类中的删除
delete() & deleteOnExit()
同:删除后不复存在
桌面上的删除操作:文件会到回收站中,这相当于Java中文件的移动操作(流中进行讲解)