批量去掉Java文件中的注釋,可以使用正則表達式進行批量操作,代碼如下:
為香河等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及香河網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站制作、香河網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
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("e:/src",?"e:/desc");?//?這里寫好源文件夾和目的文件夾??
}??
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();?//?創(chuàng)建文件夾??
}??
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)));??
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(new?FileInputStream(srcFile)));??
String?line;??
while?((line?=?br.readLine())?!=?null)?{??
bw.write(line.replaceFirst("/\\*?????\\*/",?""));?//?注意這里,如果不行,要適當(dāng)修改??
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();??
}??
}
需要一個標(biāo)識符,標(biāo)識多行注釋是否開始
讀取一行:
(1)判斷此行內(nèi)是否包含“/*“,如果包含,定位到“/*“第一個字符,并標(biāo)識多行注釋開始,繼續(xù)判斷當(dāng)前讀取行是否包含"*/",如果包含,注釋部分刪除,其他寫回文件,未包含刪除,及以后的只判斷多行結(jié)束,直至判斷到多行注釋結(jié)束,把注釋部分刪除
(2)多行注釋未開始,則判斷此行內(nèi)是否包含“//“,如果包含,定位到“//“第一個字符,把后面的全部刪除,注意多行注釋開始的當(dāng)前行,還要再判斷一次“//“,因為java支持以下注釋
//單行注釋/*
*多行注釋
*/
其實在代碼當(dāng)中適當(dāng)加點注釋,對自己、別人閱讀代碼以及以后維護都是有好處的,沒必要刪除全部的注釋,而且編譯會跳過注釋部分,就算你把一部武俠小說加到代碼注釋里,也不會影響編譯出來的文件大小的
多行注釋,將鼠標(biāo)移到被注釋內(nèi)容,按ctrl+shift+\可以取消注釋
單行注釋,按ctrl+/可以取消注釋
選中代碼 ctrl+/ 是每一行代碼前面加注釋 //
ctrl+shift+/ 是/* */注釋
取消是同樣的操作,已有注釋的就會取消沒有就會加注釋(前提是你已經(jīng)設(shè)置了快捷鍵,我說的這些是默認(rèn)的快捷鍵eclipse中的)