我一直在使用 JDK v1.7 在我自己的 PC 上进行作业,我必须在我的 uni 的 Unix 计算机上使用 java 1.6 版提交我的作业。
我的所有代码在我的机器上都可以正常执行,当我通过 SSH 连接到我的 uni 计算机并传输我的代码时,它也可以正常编译。但是,当我去运行它时,我收到一个
NoSuchElementException: No line found
我需要读取的 .xml 文件中包含大约 1000-1200 个字符(该文件比这长得多)。
冒犯的方法是
private CDAlbum CDread(Scanner inLine) {
String tempTitle = "Unknown CD";
String tempGenre = "Unknown Genre";
String tempArtist = "Unknown Artist";
ArrayList<String> tempTracks = new ArrayList<String>();
do {
lineBuffer = inLine.nextLine();
if (lineBuffer.equals("<Title>")) {
tempTitle = inLine.nextLine();
System.out.println("reading in a CD, just read title: " + tempTitle);
} else if (lineBuffer.equals("<Genre>")) {
tempGenre = inLine.nextLine();
} else if (lineBuffer.equals("<Artist>")) {
tempArtist = inLine.nextLine();
//System.out.println("Which has artist: " + tempArtist);
} else if (lineBuffer.equals("<Tracks>")) {
//populate tracks array
lineBuffer = inLine.nextLine();
while (!(lineBuffer.equals("</Tracks>"))) {
tempTracks.add(lineBuffer);
//System.out.println("Read track: " + lineBuffer);
lineBuffer = inLine.nextLine();
}
}
} while (!(lineBuffer.equals("</CD>")));
System.out.println(tempTracks);
CDAlbum tempdisc = new CDAlbum(tempTitle, tempGenre, tempArtist, tempTracks);
return tempdisc;
}
错误发生在
lineBuffer = inLine.nextLine();
我在这里有点超出我的调试深度,欢迎任何关于可能导致这种情况的建议。
控制台输出截图:http: //puu.sh/YXKN
整个源代码(以防万一,因为它很容易使用 dropbox):https ://www.dropbox.com/sh/zz8vdzqgw296s3d/v_cfW5svHG