Java_IO流——File類(2)
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)