遞迴實現刪除程式碼中的註釋和空行
最近公司讓寫軟著,需要原始碼,但是又不能有註釋和空行,所以就自己寫了一個小程式,在這裡記錄一下。
public static void main(String[] args) {
getFile(new File("E:\\Desktop\\Admin - 副本"));
}
/**
* 遞迴資料夾
* @param file
*/
private static void getFile(File file) {
File[] files = file.listFiles();
for (File f : files) {
// 如果是資料夾,那麼就使用遞迴。
if (f.isDirectory()) {
getFile(f);
} else {
// 判斷以.php結尾的檔案
if (f.getName().contains(".css")) {
try {
writerFile(f.getAbsolutePath(), "E:\\Desktop\\result.txt");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
/**
* 檔案讀寫方式
* @param inputFile
* @param writerFile
*/
private static void writerFile(String inputFile, String writerFile) {
try {
// 讀寫檔案並設定編碼格式
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile), "utf-8"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(writerFile, true), "utf-8"));
String line = "";
while ((line = br.readLine()) != null) {
if (line.equals("")) {
continue;
}
if (line.contains("//")) {
continue;
}
if (line.contains("\\t")) {
continue; }
if (line.contains("*")) {
continue;
}
if (line.contains("/*")) {
continue;
}
String newLine = new String(line.getBytes("utf-8"), "utf-8");
bw.write(newLine);
bw.newLine();
System.out.println(newLine);
}
br.close();
bw.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}