Android不保存文件

时间:2014-02-21 23:13:39

标签: java android io save

我一直在Android上做一些工作,我发现经过三四次尝试后,我似乎无法让Android将文件保存到任何地方。事实上,它甚至没有在我的应用程序的数据/中创建一个文件夹。

以下是我试图保存文件的方法 - 这也是我的主要活动。

@Override
public void onStop(){
    super.onStop();

    try{
        FileOutputStream memboricOut = getApplicationContext().openFileOutput("memboric.core", Context.MODE_PRIVATE);
        brain.save(memboricOut);
    }catch(Exception e){
        System.err.println("Could not save memboric core.");
        e.printStackTrace();
    }
}

在brain.save()里面:

public boolean save(FileOutputStream fileOut) {
    try{
        ObjectOutputStream oo = new ObjectOutputStream(fileOut);
        oo.writeObject(this);
        oo.close();
        fileOut.close();
        System.out.println("Memboric Core saved successfully.");
        return true;
    }catch (Exception e) {
        e.printStackTrace();
    }

    return false;
}

这段代码似乎无能为力。我也把保存放在了onDestroy中。

我刚刚为保存选择了错误的位置吗?我无法想象可能会出现什么问题。

2 个答案:

答案 0 :(得分:1)

您是否拥有保存文件的权限? 你可以通过向你的AnroidManifest.xml添加android.permission.WRITE_EXTERNAL_STORAGE权限来添加它。

答案 1 :(得分:0)

  

oo.writeObject(本);

大脑是否有可序列化的数据?

Class Brain implements java.io.Serializable {
    public String toString() {
        return "serialized data";
    }
}

如果没有,DataOutputStream可能是更好的选择。

DataOutputStream oo = new DataOutputStream(fileOut);
oo.writeInt(value); // if breain have int value
oo.flush();
oo.close();

保存的数据将显示在/data/data/(your.package.name)/files/memboric.core中 使用模拟器(或root设备)检查文件。