我正在制作一个 Hangman 游戏,最近实现了一种文件读取方法来随机化单词;但是,在我随机化它读取的行之前测试文件读取器时,我并没有走得太远,并且我的代码似乎跳过了 try catch block ? 以下是使用此方法的构造函数中的行:
word = determineWord();
方法如下:
String determineWord() {
String fileName = "HangmanWords.txt";
String line = null;
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
line = bufferedReader.readLine();
}
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println("Can't open file");
}
catch(IOException ex) {
System.out.println("Error reading file");
}
return line;
}
我收到的错误是 NullPointerException,我相信是因为 line 最初设置为 null,并且 word 在我的程序中不能为 null。
最佳答案
您的 while 循环每次迭代读取 2 行。
while((line = bufferedReader.readLine()) != null) {
line = bufferedReader.readLine();
}
不要在循环体中再次使用 readLine()
String line = null;
while((line = bufferedReader.readLine()) != null) {
// do something about the line
}
关于java - 跳过 try catch 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461728/