IO流/File

new File(String pathname);
通過將給定路徑來創建一個新File實例。
new File(String parent, String child);
根據parent路徑名字符串和child 路徑名創建一個新File實例。
new File(File parent, String child);
根據parent抽象路徑名和child路徑名創建一個新File實例。
new File(“c:” + File.separatorChar + “a.txt”);//路徑分隔符

getName() 獲取文件或文件夾的名稱,不包含上級路徑。
getPath() 返回絕對路徑,可以是相對路徑,但是目錄要指定
getAbsolutePath() 獲取文件的絕對路徑,與文件是否存在沒關係
length() 獲取文件的大小(字節數),如果文件不存在則返回0L,如果是文件夾也返回0L。
getParent() 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回null。
lastModified() 獲取最後一次被修改的時間。
staic File[] listRoots() 列出所有的根目錄(Window中就是所有系統的盤符)
list() 返回目錄下的文件或者目錄名,包含隱藏文件。對於文件這樣操作會返回null。
list(FilenameFilter filter) 返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。
listFiles() 返回目錄下的文件或者目錄對象(File類實例),包含隱藏文件。對於文件這樣操作會返回null。
listFiles(FilenameFilter filter) 返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。
/**
* 列出指定目錄中所有包含的子文件與子目錄
*/
public static void listAllFilesAndDirs(String path) {
// 1.創建File對象,表示這個目錄
File dir = new File(path);
// 2.通過list方法得到所包含的所有子目錄與子文件名稱
String[] names = dir.list();
// 3顯示這些名稱
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
/**
*列出指定目錄中所有的子文件名與所有的子目錄名,要求目錄名與 文件名分開列出
*/
public static void listAllFilesAndDirs2(String path) {//實現一
// 1.創建File對象,表示這個目錄
File dir = new File(path);
// 2通過listFiles方法得到所包含的所有子目錄與子文件名稱
File[] names = dir.listFiles();
// 3,分別顯示文件名與文件夾名
for (int i = 0; i < names.length; i++) {
File file = names[i];
if (file.isFile()) {
System.out.println((“子文件:”));
System.out.println(“\t” + file.getName());
} else if (file.isDirectory()) {
System.out.println((“子目錄:”));
System.out.println(“\t” + file.getName());
}
}
}
public static void listAllFilesAndDirs(String path) {//實現二
//1創建File對象表示這個目錄
File dir = new File(path);
//2通過listFiles方法得到所包含的所有子目錄與子文件名稱
File[] names = dir.listFiles();
//3,得到所有的文件名集合,與所有的文件夾名集合
List filesList = new ArrayList();
List dirsList = new ArrayList();
for (int i = 0; i < names.length; i++) {
File file = names[i];
if (file.isFile()) {
filesList.add(file);
} else if (file.isDirectory()) {
dirsList.add(file);
}
}
//4,分別顯示文件名與文件夾名
System.out.println(“子文件:”);
for (int i = 0; i < filesList.size(); i++) {
System.out.println(“\t” + filesList.get(i).getName());
}
System.out.println(“子目錄:”);
for (int i = 0; i < dirsList.size(); i++) {
System.out.println(“\t” + dirsList.get(i).getName());
}
}
//列出指定目錄中所有擴展名爲.java的文件
public class FileTest2 {
public static void main(String[] args) {
String path = “c:” + File.separatorChar + “test”;
File file = new File(path);
listtAllFiles(file, “java”);
}
/**
* 從指定目錄中找到指定擴展名的文件,並列出來
*
*/
public static void listtAllFiles(File dir, String extension) {
// 1.獲取所有的子文件和子文件夾
File[] files = dir.listFiles();
// 2.從中找出符合條件的文件並顯示出來
for (int i = 0; i < files.length; i++) {
File file = files[i];
// 3.需要以指定文件後綴結尾纔算符合條件
if (file.getName().endsWith(extension)) {
System.out.println(file.getName());
}
}
}
}

public class FileTest2 {
public static void main(String[] args) {
String path = “c:” + File.separatorChar + “test”;
File file = new File(path);
listtAllFiles2(file, “txt”);
}

/**
 * FilenameFilter接口寫一個工具類,可以傳遞指定的過濾規則。
 *  從指定目錄中找到指定擴展名的文件,並列出來
 *
 * */
public static void listtAllFiles2(File dir, String name) {
    // 1.獲取所有的子文件和子文件夾
    String[] files = dir.list(new DirFilter("txt"));

    // 2顯示名稱
    for (int i = 0; i < files.length; i++) {
        System.out.println(files[i]);
    }
}

}

class DirFilter implements FilenameFilter {
private String extension;

public DirFilter() {

}

public DirFilter(String extension) {
    this.extension = extension;
}

@Override
public boolean accept(File dir, String name) {
    return name.endsWith(extension);
}

}
注意: DirFilter 就是實現了accept 方法.提供給File類的list方法使用.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章