需要一個(gè)標(biāo)識(shí)符,標(biāo)識(shí)多行注釋是否開(kāi)始
專業(yè)從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),高端網(wǎng)站制作設(shè)計(jì),重慶小程序開(kāi)發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用HTML5+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。
讀取一行:
(1)判斷此行內(nèi)是否包含“/*“,如果包含,定位到“/*“第一個(gè)字符,并標(biāo)識(shí)多行注釋開(kāi)始,繼續(xù)判斷當(dāng)前讀取行是否包含"*/",如果包含,注釋部分刪除,其他寫(xiě)回文件,未包含刪除,及以后的只判斷多行結(jié)束,直至判斷到多行注釋結(jié)束,把注釋部分刪除
(2)多行注釋未開(kāi)始,則判斷此行內(nèi)是否包含“//“,如果包含,定位到“//“第一個(gè)字符,把后面的全部刪除,注意多行注釋開(kāi)始的當(dāng)前行,還要再判斷一次“//“,因?yàn)閖ava支持以下注釋
//單行注釋/*
*多行注釋
*/
其實(shí)在代碼當(dāng)中適當(dāng)加點(diǎn)注釋,對(duì)自己、別人閱讀代碼以及以后維護(hù)都是有好處的,沒(méi)必要?jiǎng)h除全部的注釋,而且編譯會(huì)跳過(guò)注釋部分,就算你把一部武俠小說(shuō)加到代碼注釋里,也不會(huì)影響編譯出來(lái)的文件大小的
批量去掉Java文件中的注釋,可以使用正則表達(dá)式進(jì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");?//?這里寫(xiě)好源文件夾和目的文件夾??
}??
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())?{??
//?相對(duì)路徑??
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)移到被注釋內(nèi)容,按ctrl+shift+\可以取消注釋
單行注釋,按ctrl+/可以取消注釋