如何在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是一个私有字段,我忘了在这个问题中添加它,但它被声明为非空。