2011-04-28 96 views
2

我試圖做出一個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文件?

+0

如果您還發布了MrStan.setPoints代碼和使用該整數的代碼,那該多好。必須有一些錯誤設置值或使用它... – helios 2011-04-28 21:24:34

+0

「但它不會改變」。什麼沒有改變?點集中的值?你能縮小你的問題嗎? – 2011-04-28 21:26:49

+0

程序以int開始的int,它應該從文件中的int值開始 – Stan 2011-04-28 21:30:02

回答

0
  1. 您是否檢查輸出"COULD NOT FIND TEXT.TXT"
  2. add System.out.println("Read: "+ pointset);之後int pointset = Integer.parseInt(p);
  3. 請確保您沒有this.points = 0;其他地方。
  4. 您在MrStanReadFile中定義了MrStan a = new MrStan();。你確定它與class todoTask中使用的對象相同嗎?
+0

1.無輸出。它將文件變紅,並打印文件中的內容。 3.我不知道,4.我不確定,但我需要使用MrStan.class的方法。 getPoints似乎工作,但setPoints沒有。 – Stan 2011-04-29 06:03:04

+0

@Stan發佈完整的todoTask課程 – Aleadam 2011-04-29 06:28:00

相關問題