2013-05-01 3 views
0

В игре, в которой я сейчас работаю, я хочу сделать так, чтобы при запуске игры вы получили предыдущий балл, который у вас был перед тем, как вы ушли. Я уже сделал файл сохранения для оценки с помощью этого кода.Оценка игрока по игре

   try{ 
        File getScore = new File("Score.dat"); 
        FileOutputStream scoreFile = new FileOutputStream(getScore); 
        byte[] saveScore = score.getBytes(); 
        scoreFile.write(saveScore); 
       }catch(FileNotFoundException ex){ 

       }catch(IOException ex){ 

       } 

Счет отображается в виде строки, так для этого на начать игру должны получить счет внутри .dat файла в виде строки, так что я могу сравнять счет строки на строку, которая была сгенерирована при запуске. Я попытался использовать код, показанный ниже.

 try{ 
      BufferedReader br = new BufferedReader(new FileReader("Score.dat")); 
      score = br.toString(); 
     }catch (FileNotFoundException ex){ 

     } 

Но когда я использую этот код, я получаю это сообщение об ошибке.

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "[email protected]" 
+0

Что такое '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' – TheMerovingian

+0

@ TheMerovingian Это 'String', но каждый раз, когда я его обновляю, я меняю его на' int' add 10 на 'int', а затем вернул его в' String' –

+1

1. Вы должны закрыть 'FileOutputStream' вызовите 'scoreFile.close()'; 2. Вы должны использовать 'br.readLine()' вместо 'br.toString()'. – SeniorJD

ответ

1

Если вы br.toString(), он вызывает метод toString() из объекта класса на вашем объекте BufferedReader. Так печатает адрес памяти вашего забуференного объекта:

public String toString() { 
      return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
} 

Вот почему вы получите NumberFormatException, потому что вы не можете назначить String к score (который я полагаю, является int переменным).

Кроме того, вы абсолютно не ищете это, потому что хотите сохранить текст в своем файле. Если вы хотите прочитать одну строку из своего буфера, вам просто нужно сделать это:

String line = br.readLine(); 
    int value = Integer.parseInt(line); 
Смежные вопросы