你可以使用Java的File類和BufferedReader類來實現文件內容的查找。以下是一個示例代碼,該代碼可以查找指定文件夾下所有文件中的重復內容:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class FindDuplicateContent {
public static void main(String[] args) {
// 指定文件夾路徑
String folderPath = "your_folder_path";
// 用于存儲文件內容和對應的文件路徑
Map<String, Set<String>> contentMap = new HashMap<>();
// 遍歷文件夾下的所有文件
File folder = new File(folderPath);
for (File file : folder.listFiles()) {
if (file.isFile()) {
String content = getFileContent(file);
if (content != null) {
// 將文件內容作為key,文件路徑作為value存入map中
if (contentMap.containsKey(content)) {
contentMap.get(content).add(file.getAbsolutePath());
} else {
Set<String> filePaths = new HashSet<>();
filePaths.add(file.getAbsolutePath());
contentMap.put(content, filePaths);
}
}
}
}
// 輸出重復內容和對應的文件路徑
for (Set<String> filePaths : contentMap.values()) {
if (filePaths.size() > 1) {
System.out.println("重復內容:" + filePaths);
}
}
}
private static String getFileContent(File file) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
StringBuilder content = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
}
return content.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
請將代碼中的your_folder_path
替換為你要查找的文件夾的路徑。運行這段代碼后,它會列出重復的文件內容和對應的文件路徑。