我正在研究一種解析器(愛好項目),它需要一個Cpp文件,讀取文件中的註釋,然後嘗試基於此創建頭文件。掃描器中的NoSuchElementException
我面臨的問題是當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;
你可以嘗試改變你的while循環從'line!= null'到scanner.hasNext(),然後在循環內部有scanner.next()。 – Thomas