我並不確定問題出在哪裏,但代碼應該在每次調用saveCI
方法時將ci
變量寫入txt文件,覆蓋任何以前的int可能會或可能不會。當調用loadCI
方法時,無論在txt文件中寫入的int值都需要保存到ci
變量,並且如果txt文件完全爲空,則ci
應該等於。出於某種原因,無論何時調用任何方法都不會發生,txt文件始終保持爲空。Java:使用掃描器和PrintWriter讀取和寫入int值到文件
下面的代碼:
private int ci;
private File ciFile = new File("ci.txt");
private void saveCI(){
try{
PrintWriter pw = new PrintWriter(ciFile);
pw.write(ci);
pw.close();
System.out.println("CI saved");
}catch(FileNotFoundException e){
System.out.println("CI save" + e);
}
}
public void loadCI(){
try{
Scanner sc = new Scanner(ciFile);
if(sc.hasNextInt() == false){
ci = 0;
}else{
ci = sc.nextInt();
}
System.out.println("CI loaded");
}catch(FileNotFoundException e){
System.out.println("load ci " + e);
}
}
請記住,有從中取該樣本的類的詳細代碼,並有一個與還的代碼中很多其他類的保存和加載方法從其他方法/類中調用,我省略了其餘代碼,因爲這裏包含太多內容。我試圖練習面向對象方法。
'如果(sc.hasNextInt()== FALSE){ CI = 0; } else { ci = sc.nextInt(); } ' 更簡單地寫成'ci = sc.hasNextInt()? sc.nextInt():0;' – FredK
謝謝,我不知道:) –