Java實驗5 IO流 第二題
阿新 • • 發佈:2018-12-01
檢視File類的API文件,使用該類實現一個類FileList,它提供兩個靜態方法:1)printContentsInOneDirectory:能夠將輸入引數path所指定的本地磁碟路徑下的所有目錄和檔案的名稱(指明是目錄還是檔案,格式見下圖)打印出來;2)readFileAndDirectory:能夠將輸入引數path所指定的本地磁碟路徑下的所有目錄(包含子目錄)和檔案的名稱(指明是目錄還是檔案,格式見下圖)以層次化結構打印出來。例如,某個目錄下面有子目錄a和檔案Teacher.class,目錄a下面有子目錄b(下面有檔案Teacher.java)和c(下面有檔案Test.java和Test.class)以及檔案1.txt,將該目錄對應的路徑作為輸入引數呼叫該方法,程式的輸出如下圖所示。
import java.io.*; public class FileList { public static void printContentsInOneDirectory(String path) { File file = new File(path); try { File[] files = file.listFiles(); for (File i : files) { if (i.isFile()) { System.out.format("[檔案] %s\n", i.getName()); } else { System.out.format("[目錄] %s\n", i.getName()); } } } catch (RuntimeException e) { System.out.println("路徑錯誤!"); } } public static void readFileAndDirectory(String path, int indent) { File file = new File(path); try { File[] files = file.listFiles(); for (File i : files) { for (int j = 0; j < indent; j++) { System.out.print("--"); } if (i.isFile()) { System.out.format("[檔案] %s\n", i.getName()); } else { System.out.format("[目錄] %s\n", i.getName()); readFileAndDirectory(i.getAbsolutePath(), indent + 1); } } } catch (RuntimeException e) { System.out.println("路徑錯誤!"); } } } public class Main { public static void main(String[] args) { // TODO Auto-generated method stub FileList.printContentsInOneDirectory("./"); FileList.readFileAndDirectory("./", 0); } }