標籤:依次 檔案夾 lte origin 指定 name getname boolean 使用
File類使用練習1
1.輸出指定目錄下面指定尾碼的檔案名稱
判斷E盤目錄下面是否有尾碼命名為.txt的檔案,如果有,就輸出此檔案名稱。
2.分析:
(1).封裝E盤目錄
(2).擷取該目錄下面所有檔案或者檔案夾的File數組,用於判斷是不是檔案
(3).遍曆該File數組,擷取每一個File對象,然後判斷
(4).是否是檔案
是:繼續判斷是否是以.txt檔案結尾
是:就輸出該檔案名稱
否:就不管
否:就不管
3.改進:
使用檔案名稱過濾器改進
方法:
public String[] list(FlienameFilter filter)
public File[] listFile(FlienameFilter filter)
實現的時候需要實現裡面一個介面並重寫裡面的accept()方法
分析:
(1).判斷E盤目錄下面是否有尾碼命名為.txt的檔案,如果有就直接輸出
(2).先擷取所有的,然後遍曆的時候,依次判斷,如果滿足條件就輸出
(3).擷取的時候就已經是滿足條件的了,然後輸出即可。
4.代碼實現:
public class Test {
public static void main(String[] args) {
//封裝E判斷目錄
File file =new File("E:\\");
//擷取該目錄下面所有的檔案或者是檔案夾的File數組
String[] fileArray=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//直接返回滿足條件的檔案名稱
return new File(dir,name).isFile()&&name.endsWith(".txt");
}
});
//遍曆輸出結果
for(String s:fileArray){
System.out.println(s);
}
}
}
-----------------------------------------------------
File類使用練習2
1.批量修改檔案名稱
把demo檔案夾下面的資料測試_01.txt,資料測試_02.txt,資料測試_03.txt,資料測試_04.txt修改成為
資料測試結果_01.txt,資料測試結果_02.txt,資料測試結果_03.txt,資料測試結果_04.txt
2.思路
(1).封裝目錄
(2).擷取該目錄下面所有的檔案的File數組
(3).遍曆該File數組,得到每一個File對象
(4).拼接一個新的名稱,然後重新命名即可
3.代碼實現
public class Test {
public static void main(String[] args) {
//封裝
File file=new File("E:\\demo\\");
File[] fileArray =file.listFiles();
//遍曆
for(File fl:fileArray){
String name=fl.getName();
System.out.println("origin name is:"+name);
//擷取索引進行字元截取
int index=name.indexOf("_");
String numberString=name.substring(0, index);
String endString=name.substring(index,name.length());
//System.out.println(numberString);
String newName=numberString.concat("結果")+endString;
System.out.println("newName:"+newName);
File newFile=new File(file,newName);
//重新命名
fl.renameTo(newFile);
}
}
}
Java_IO流——File類(2)