天天看點

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());
			} 
		}
	}

}