我正在编写一个java程序来删除相同java程序中的注释.我在考虑使用文件阅读器.但我不确定它是否会奏效.
因为两个进程将使用相同的文件.但我认为在执行代码之前,java文件会生成一个.class文件.所以,如果我用a filereader来编辑java文件.它不应该给我错误,另一个进程已经在使用此文件.
我认为对吗?
提前致谢.
是的,你可以毫无问题地做到这一点.
注意:注意以下事项:
String notAComment = "// This is not a comment";
Run Code Online (Sandbox Code Playgroud)
如果您只想从Java程序中删除注释,为什么不使用正则表达式进行简单的搜索和替换,并将所有注释转换为空字符串?
在Java中,这是一种冗长的方式:
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
class Cleaner{
public static void main( String a[] )
{
String source = readFile("source.java");
System.out.println(source.replaceAll("(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)",""));
}
static String readFile(String fileName) {
File file = new File(fileName);
char[] buffer = null;
try {
BufferedReader bufferedReader = new BufferedReader( new FileReader(file));
buffer = new char[(int)file.length()];
int i = 0;
int c = bufferedReader.read();
while (c != -1) {
buffer[i++] = (char)c;
c = bufferedReader.read();
}
} catch (IOException e) {
e.printStackTrace();
}
return new String(buffer);
}
}
Run Code Online (Sandbox Code Playgroud)