如何在android上正确保存和检索文件
我试图让我的程序将其当前状态保存在内存中,以便下次加载时可以检索它。 但我似乎无法让它工作,我的应用程序在开机时不断崩溃如何在android上正确保存和检索文件,android,file-io,Android,File Io,我试图让我的程序将其当前状态保存在内存中,以便下次加载时可以检索它。 但我似乎无法让它工作,我的应用程序在开机时不断崩溃 private File statoContatori = new File(getFilesDir(), "statoContatori"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten
private File statoContatori = new File(getFilesDir(), "statoContatori");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inizializeCounters();
}
private void inizializeCounters() {
Scanner in = null;
try {
in = new Scanner(statoContatori);
while (in.hasNext())
{
String idContatore = in.next();
String nomeContatore = in.next();
String valore = in.next();
if (idContatore.equals("contatore_1"))
{
initializeContatore(R.id.contatore_1_label, R.id.contatore_1, nomeContatore, valore);
}
else if (idContatore.equals("contatore_2"))
{
initializeContatore(R.id.contatore_2_label, R.id.contatore_2, nomeContatore, valore);
//There are a couple more IFs in here...
}
} catch (FileNotFoundException e) {
creaFileStatoContatori();
}
finally {
in.close();
}
}
private void creaFileStatoContatori() {
PrintWriter out = null;
try {
out = new PrintWriter(statoContatori);
out.println("contatore_1\tcontatore_1\t0");
out.println("contatore_2\tcontatore_2\t0");
out.println("contatore_3\tcontatore_3\t0");
out.println("contatore_4\tcontatore_4\t0");
out.println("contatore_5\tcontatore_5\t0");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
finally {
out.close();
}
inizializeCounters();
}
所以基本上我想做的是:
如果文件存在->加载文件
如果文件不存在->使用标准配置创建文件->加载文件
我做错了什么?使用LogCat检查启动时崩溃的Java堆栈跟踪。您能告诉我如何从eclipse执行此操作吗?statoContatori是什么?在in=new ScannerstatoContatori中可能为空;并抛出一个NPE.statoContatori是一个私有字段,我忘了在这个问题中添加它,但它被声明为非空。