Моя программа не читает файл, как это должно быть - PullRequest
2 голосов
/ 29 апреля 2011

Я пытаюсь создать значение типа int, которое увеличивается счетчиком каждую секунду, затем, когда вы закрываете программу, оно сохраняет значение в файл .txt, а затем ДОЛЖНО, когда выснова запустите программу, прочитайте значение int из файла и снова продолжите с этого значения, однако, оно сохраняет правильно, создает файл, но когда я снова запускаю программу, она просто снова начинается с 1, ине со значением, которое было сохранено в файле .txt.

Значение int:

    public int points;

Метод получения и установки, расположенный в MrStan.class

    public int getPoints(){
    return points;
}

public void setPoints( int points ){
    this.points = points;
}

Как я читаю файл:

        MrStanReadFile r = new MrStanReadFile();
    r.openFile();
    r.readFile();
    r.closeFile();

Мой класс ReadFile:

public class MrStanReadFile {

private Scanner x;
MrStan a = new MrStan();

public void openFile(){
    try{
        x = new Scanner(new File("D:/MrStan/text.txt"));
    }catch(Exception ex){
        System.out.println("COULD NOT FIND TEXT.TXT");
    }
}

public void readFile(){
    while(x.hasNext()){
        String p = x.next();
        int pointset = Integer.parseInt(p);
        a.setPoints(pointset);
    }
}

public void closeFile(){
    x.close();
}

}

Другие места, где используется int:

Todotask:

    public MrStan(){
    timer.schedule(new todoTask(), 0, 1 * 1000);
}

class todoTask extends TimerTask{
    public void run(){  
        points++;
        repaint();
    }
}

private Timer timer = new Timer();

и

        g.drawString("Points: " + points, 75, 83);

Хорошо, в методе readFile вы увидите строку p, это строка в текстовом файле.Я преобразую строку в int, используя Integer.parseInt (), затем устанавливаю в качестве значения int значение преобразованного набора точек, но оно не меняется, как будет работать моя программа, чтобы она запускалась с числа, указанного вфайл .txt?

1 Ответ

0 голосов
/ 29 апреля 2011
  1. Вы проверяли выход "COULD NOT FIND TEXT.TXT"?
  2. добавить System.out.println("Read: "+ pointset); сразу после int pointset = Integer.parseInt(p);
  3. Убедитесь, что у вас нет this.points = 0; где-либо еще.
  4. Вы определяете MrStan a = new MrStan(); внутри MrStanReadFile. Вы уверены, что это тот же объект, который вы используете в class todoTask?
...