我正在尝试创建一个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的地方:
托多塔斯克:
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值设置为转换后的点集值,但它没有改变,我的程序将如何工作,以便从.txt文件中设置的数字启动?
- 您检查输出
"COULD NOT FIND TEXT.TXT"
了吗 - 在
int pointset = Integer.parseInt(p);
之后添加System.out.println("Read: "+ pointset);
- 确保您在其他任何地方都没有
this.points = 0;
- 您正在
MrStanReadFile
中定义MrStan a = new MrStan();
。你确定它和你在class todoTask
中使用的对象是同一个对象吗