3

到目前为止,我已经在我的资产文件夹中创建了一个文本文件,我可以很好地阅读它并完成它应该做的事情。当我使用以下内容写信时:

 FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
 fos.write(("0").getBytes());
 fos.close()

有用。但是,当我关闭我的应用程序并稍后重新打开它时,它不记得我将其更改为的任何内容。

有任何想法吗?

4

2 回答 2

0

assets 或 raw 中的文件旨在为只读文件,因此将其复制到新位置(如 in Environment.getDataDirectory()),然后您应该能够对其进行写入。


我认为这会引发某种类型的异常你有一个空的 catch 块吗?至少你应该使用,e.printStackTrack()否则你的应用程序将默默地失败......

try {
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
    fos.write(("0").getBytes());
    fos.close();
} catch (Exception e) {
    e.printStackTrace();
}
于 2012-12-19T00:27:02.860 回答
0

我想你只是忘记在写完之后调用flush

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
 fos.write(("0").getBytes());
 fos.flush();
 fos.close();
于 2012-12-19T00:42:37.420 回答