天天看点

IO之File类

import java.io.File;
import java.io.IOException;

public class Demo {
	public static void main(String[] args) {
		// --> F:/lamp/lamp.txt
		File file = new File("F:" + File.separator + "lamp" + File.separator
				+ "lamp.txt");
		// String s = File.pathSeparator;
		if (!file.exists()) {
			try {
				boolean b = file.createNewFile();
				System.out.println("创建:" + b);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		System.out.println("删除:" + file.delete());
		System.out.println("上一级路径:" + file.getParent());
		System.out.println("是否是目录:" + file.isDirectory());
		System.out.println("是否是文件:" + file.isFile());

		// 列出文件夹下文件名
		File file2 = new File("E:\\JavaSE教程\\核心");
		String[] fileName = file2.list();
		for (String s : fileName) {
			System.out.println(s);
		}

		// 列出文件夹中所有文件,以File数据返回
		File[] files = file2.listFiles();
		for (File file3 : files) {
			System.out.println(file3.getPath() + "---大小:" + file3.length());
		}

		// 创建文件夹
		File file4 = new File("F:\\wenjianjia\\Hello");
		System.out.println(file4.mkdir());

		// 重名名
		File file5 = new File("F:\\wenjianjia\\HelloWorld");
		System.out.println(file4.renameTo(file5));

		// 给定一个目录,找出该目录下(包括子目录)所有以txt后缀的文件,打印出来
		File f = new File("E:\\JavaSE教程");
		findFile(f, ".txt");

	}

	// 使用递归算法实现文件查找
	public static void findFile(File file, String extName) {
		if (file == null) {
			return;
		}
		// 如果是目录,获取目录下所以文件的File对象
		if (file.isDirectory()) {
			File[] fs = file.listFiles();
			if (fs != null) {
				for (File f : fs) {
					findFile(f, extName); // 递归
				}
			}
		} else {
			// 当File是文件时,进行判断
			String path = file.getPath().toLowerCase();
			if (path.endsWith(extName)) {
				System.out.println(file.getPath());
			} 
		}
	}

}