我的程序没有按原样读取文件

时间:2011-04-28 21:22:15

标签: java file java.util.scanner

我正在尝试创建一个int值,每秒钟一个计数器上升,然后当你关闭程序时,它会将值保存到.txt文件中,然后,它应该是,当你再次启动程序,从文件中读取int值,然后再次从该值继续,但是,它正确保存,它会生成文件,但是当我再次启动程序时,它将再次从1开始,并且不是保存在.txt文件中的值。

int值:

    public int points;

getter和setter,位于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,它是文本文件中的字符串。我使用Integer.parseInt()将字符串转换为int,然后,我将我的int值设置为转换的pointset值,但它没有改变,我的程序将如何工作,所以它将从设置的数字中启动.txt文件?

1 个答案:

答案 0 :(得分:0)

  1. 您是否检查了输出"COULD NOT FIND TEXT.TXT"
  2. System.out.println("Read: "+ pointset);
  3. 之后立即添加int pointset = Integer.parseInt(p);
  4. 确保您在其他地方没有this.points = 0;
  5. 您正在MrStan a = new MrStan();内定义MrStanReadFile。您确定它与您在class todoTask中使用的对象相同吗?