1. 程式人生 > >去掉java中的註釋(尤其針對反編譯後的檔案)

去掉java中的註釋(尤其針對反編譯後的檔案)

package day20151217;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public
class CopyJava { public static void main(String[] args) throws IOException { copy("C:/test/old", "C:/test/new"); // 這裡寫好原始檔夾和目的資料夾 System.out.println("ok"); } private static void copy(String srcPath, String descPath) throws IOException { copy(new File(srcPath), new
File(descPath)); } private static void copy(File srcFile, File descFile) throws IOException { if (srcFile.isFile()) { // 檔案 File parent = descFile.getParentFile(); if (!parent.exists()) { parent.mkdirs(); // 建立資料夾 } if (srcFile.getName().endsWith(".java"
)) { copyJava(srcFile, descFile); } else { copyFile(srcFile, descFile); } } else { // 資料夾 for (File file : srcFile.listFiles()) { // 相對路徑 String srcPath = file.getAbsolutePath().substring( srcFile.getAbsolutePath().length()); copy(file, new File(descFile.getAbsolutePath() + srcPath)); } } } private static void copyJava(File srcFile, File descFile) throws IOException { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(descFile),"utf-8")); BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(srcFile),"utf-8")); String line; while ((line = br.readLine()) != null) { //把最後幾行去掉: if(line.indexOf("/* Location: C:") != -1){ break; } bw.write(line.replaceFirst(".*/\\*(.*)\\*/", "")); // 注意這裡,如果不行,要適當修改 bw.write("\n"); } br.close(); bw.close(); } private static void copyFile(File srcFile, File descFile) throws IOException { OutputStream output = new FileOutputStream(descFile); InputStream input = new FileInputStream(srcFile); byte[] buffer = new byte[1024 * 4]; int n = 0; while ((n = input.read(buffer)) != -1) { output.write(buffer, 0, n); } input.close(); output.close(); } }