我正在研究一种解析器(爱好项目),它需要一个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