你可以通過編程的方式來完成。開始與所有的.java過濾器:
public class FileExtensionFilter implements FilenameFilter {
private Set<String> filteredExtensions;
public FileExtensionFilter() {
filteredExtensions = new HashSet<String>();
}
@Override
public boolean accept(File dir, String name) {
boolean accept = true;
for (String filteredExtension:filteredExtensions) {
accept = accept && !name.endsWith(filteredExtension);
}
return accept;
}
public void addFilteredExtension(String extension) {
filteredExtensions.add(extension);
}
}
然後你可以使用遞歸方法查找文件:
public Set<String> searchFileBasedOnExtension(File file) {
Set<String> extensions = new HashSet<String>();
if (file.isDirectory()) {
for (File f : file.listFiles(fileExtensionFilter)) {
extensions.addAll(checkForExtensions(f));
}
} else {
String extension = file.getName().substring(Math.max(file.getName().lastIndexOf('.'),0));
extensions.add(extension);
fileExtensionFilter.addFilteredExtension(extension);
}
return extensions;
}
然後根據收到一套,你可以重複它,閱讀該文件找到添加「導入」的位置並找到類名,並將其保存到一個變量中以替換每個文件,因爲每個文件都代表不同的類。
樣品:
for (String s : setWithFileNames) {
// Use BufferedReader to read the file, save the content in a String, then look inside the String the classname and the first import position.
// Use bufferedWriter to re-write the file with the changes you made.
}
希望它讓你的手與你的要求。最好的祝福。
我假設你也需要添加import語句,對不對?您可以嘗試編寫一個程序來瀏覽文件目錄,打開每個.java文件併爲您添加它。 –
看起來不是java問題,而是編寫shell腳本插入必要的行的問題。 – svz
是的,我將不得不添加log4j導入,這將是非常棒的 – Ashish