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:javaSEday01day01HelloWorld.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中文件的移动操作(流中进行讲解)

原文地址:https://www.cnblogs.com/nadou/p/13973126.html