Я начинающий программист на Java. Я программирую игру тральщика и хочу вставить строку в таблицу myhighscore. Everytime, первый Essai является успешным, но когда я переигрывать, я не могу вставить строку и у меня есть ошибка:Невозможно вставить строку в таблицу рекордов в Java
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Scanner closed
Любой желающий мог увидеть проблему?
public void insererLigne(String texte, int numLine, int numDelLine) {
List<String> fileLines = new ArrayList<String>();
try {
for (int i = 1; scanner.hasNextLine(); i++) {
String line = scanner.nextLine();
if (i == numLine) {
fileLines.add(texte);
}
if (i != numDelLine) {
fileLines.add(line);
}
}
}
finally {
if (scanner != null) {
scanner.close();
}
}
PrintWriter pw = null;
try {
pw = new PrintWriter(fichier);
for (String line : fileLines) {
pw.println(line);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
finally {
if (pw != null) {
pw.close();
}
}
}
исключение говорит, что сканер закрыт, можно было бы поделиться кодом, в котором вы объявили и инициализировали объект сканера –
И, пожалуйста, переформатируйте код в своем сообщении - я подозреваю, что вы действительно не имеете пустую строку между каждой строкой код ... (я также настоятельно рекомендую вам использовать инструкцию try-with-resource вместо ручного закрытия вещей и очень нервничать каждый раз, когда ваша «обработка» исключения просто сбрасывает трассировку стека и продолжается, как если бы все было в порядке ...) –
Сканер, вероятно, является полем-членом и закрыт, потому что первый запуск этого метода фактически закрывает его в блоке 'finally {}' (!). – user268396