我正在研究一种解析器(爱好项目),它接受一个 Cpp 文件,通读文件中的注释,然后尝试基于该文件创建一个头文件。
我面临的问题是当java.util.Scanner
即将阅读第一行时。程序停止并给了我NoSuchElementException
. 我真的无法弄清楚应该是什么问题。我检查了路径和路径名是否正确。该文件必须在那里,并且在调试时我也可以读取 Scanner 对象上的字段。那么究竟是什么问题呢?
有些人暗示它可能认为文件中没有行。
问题发生在while((line = scanner.next()) != null) {
@Override
public void run() {
Scanner scanner = null;
String filename = "", path = "";
StringBuilder puBuilder, prBuilder, viBuilder;
puBuilder = new StringBuilder();
prBuilder = new StringBuilder();
viBuilder = new StringBuilder();
for(File f : files) {
try {
filename = f.getName();
path = f.getAbsolutePath();
path = path.replace(filename, "");
filename = filename.replace(".cpp", "");
scanner = new Scanner(new FileReader(f));
} catch (FileNotFoundException ex) {
System.out.println("FileNotFoundException: " + ex.getMessage());
}
String line;
String tag;
while((line = scanner.next()) != null) {
line = line.trim();
if(line.startsWith(PUBLIC)) {
tag = PUBLIC;