我并不确定问题出在哪里,但代码应该在每次调用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
谢谢,我不知道:) –