所以我試圖從txtfile中提取一段代碼,該段的開始由「#EMPIRES」指示,並且結尾由以「#」開始的另一個字符串指示。然而,我的程序從來沒有找到一塊的開始,並繼續前進,直到它到達文件的末尾。爲什麼不完整閱讀文本文件?
試圖找出問題所在,我首先嚐試打印找到的每一行。 在這裏我遇到了另一個問題。我的代碼早在 甚至到達「#EMPIRES」之前就已經停止查找新行。
public String getEmpirestxt(String fileName) {
Scanner sc;
try {
sc = new Scanner(new File(fileName));
String currentLine = sc.nextLine();
StringBuilder empiresText = new StringBuilder(currentLine);
while (!currentLine.startsWith("# EMPIRES")) {
currentLine = sc.nextLine();
System.out.println(currentLine);
}
currentLine = sc.nextLine();
while (sc.hasNextLine() && currentLine.charAt(0)!='#') {
empiresText.append("\n").append(sc.nextLine());
}
return empiresText.toString();
} catch (FileNotFoundException ex) {
System.out.println("Landed_Titles.txt not found.");
}
return null;
}
文本文件本身: https://www.wetransfer.com/downloads/a1093792d5ac54b6ccce04afecb9357f20140402095042/505fca
您可以嘗試註釋掉「currentLine = sc.nextLine();」嗎?看看它是否有效。 – Boris
由於沒有任何變化,我在第一個循環中陷入困境... – BURNS
[Java掃描程序不通過整個文件]可能的重複(http://stackoverflow.com/questions/8330695/java-scanner-not-going-通過整個文件) –