對于通過java對文件繼續(xù)讀取和寫入的操作推薦看讀取文件和寫入文件操作
題目
????????掃描指定目錄中的文件,并找到名稱中包含指定字符的所有普通文件(不包括目錄),并后續(xù)詢問用戶是否要刪除該文件
題目分析
? ? ? ? 實際上題目就要求我們對一個指定的目錄下的文件進行遍歷,并找出文件名稱中帶有指定字符的普通文件,并詢問用戶是否需要刪除該文件
代碼展示
package 文件操作;
import java.io.File;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* Description:
* User: wuyulin
* Date: 2023-08-07
* Time: 11:23
*/
//文件操作練習
//掃描指定目錄,并找到名稱中包含指定字符的所有普通文件(不包括目錄),并后續(xù)詢問用戶是否要刪除該文件
public class Demo5 {
private static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
System.out.print("請輸入要進行查找的根目錄路徑:");
//將用戶輸入的根目錄地址作為參數(shù)實例化一個File類型的對象
File rootDir=new File(scanner.next());
if(!rootDir.isDirectory()){
System.out.println("輸入的路徑不是一個合法目錄");
return;
}
System.out.print("請輸入要刪除的文件的關鍵字:");
String word=scanner.next();
//開始遍歷目錄中的數(shù)據(jù)
recurDir(rootDir,word);
}
//通過深度優(yōu)先遍歷去遞歸遍歷完目錄中的數(shù)據(jù)
private static void recurDir(File rootDir,String word){
//通過listFiles方法獲得rootDir根目錄下的所有文件
File[] files=rootDir.listFiles();
//當目錄是非法的目錄,或是空的目錄就直接return
if(files==null||files.length==0){
return;
}
for(File f:files){
//打印每一個遍歷到的文件的路徑,進行監(jiān)視
System.out.println(f.getAbsolutePath());
//當前遍歷到的這個文件是目錄的話就要遞歸進入這個目錄,去遍歷該目錄中的內(nèi)容
if(f.isDirectory()){
recurDir(f,word);
}else { //當前遍歷到的文件是普通文件,就要判斷是否含有關鍵詞,是否需要刪除
deleteFile(f,word);
}
}
}
private static void deleteFile(File file,String word){
if(!file.getName().contains(word)){
return;
}
System.out.println("找到了"+file.getAbsolutePath()+"文件,是否需要刪除(Y/N)");
String choice=scanner.next();
//choice是一個String類型的對象,所以choice是一個引用,指向String對象所在內(nèi)存空間的地址
//所以String類型的對象進行比較要使用equals
if(choice.equals("y")||choice.equals("Y")){
file.delete();
}
}
}
? ? ? ? 1,首先對于指定目錄下文件的遍歷,采用的是深度優(yōu)先遍歷的思想,當我們遍歷文件的時候要是遇到的是普通的文件,就判斷名稱是否含有指定字符,要是遇到目錄,就要進行遞歸,進入目錄中遍歷該目錄中的文件,繼續(xù)進行相同的操作
? ? ? ? 2.通過目錄對象調(diào)用listFiles方法可以獲得該目錄下所有的文件,將其存入文件數(shù)組中,遍歷文件數(shù)組中的每一個文件,當該文件是目錄,那么就要進行遞歸,進入該目錄中進行相同的操作,要是該文件是普通文件,就要進行判斷,詢問用戶,刪除等操作
? ? ? ? 3.在deleteFile方法中,通過file.getName().contains(word)獲得文件的名稱并判斷文件名稱中是否含有指定字符word文章來源:http://www.zghlxwxcb.cn/news/detail-637646.html
? ? ? ? 4.當判斷用戶輸入的時候由于choice是String類型,是對象,所以choice只是一個引用(地址),所以不能直接用==來判斷是否相等,要通過調(diào)用equals方法才能判斷值是否相等。文章來源地址http://www.zghlxwxcb.cn/news/detail-637646.html
到了這里,關于Java文件操作(遍歷目錄中的文件,找到并刪除有指定關鍵字的文件)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!