如何写入文本文件并将其保存以供多次使用
Posted
技术标签:
【中文标题】如何写入文本文件并将其保存以供多次使用【英文标题】:How to write to a text file and save it for multiple uses 【发布时间】:2012-12-19 00:21:43 【问题描述】:到目前为止,我已经在我的资产文件夹中创建了一个文本文件,我可以很好地阅读它并执行它应该做的事情。当我使用以下内容写信时:
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(("0").getBytes());
fos.close()
它有效。但是,当我关闭我的应用并稍后重新打开它时,它不记得我将其更改为的任何内容。
有什么想法吗?
【问题讨论】:
【参考方案1】:assets 或 raw 中的文件是只读的,因此将其复制到新位置(例如在 Environment.getDataDirectory()
中),然后您应该能够对其进行写入。
我认为这会引发某种类型的异常你有一个空的 catch 块吗?至少您应该使用e.printStackTrack()
否则您的应用程序将静默失败...
try
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(("0").getBytes());
fos.close();
catch (Exception e)
e.printStackTrace();
【讨论】:
谢谢,但我应该把它移到哪里? 您有多种选择,例如Data Storage 的“其他有用方法”小节中的getFilesDir()
或getDir()
。
再次感谢,但现在我不知道如何将它放入 Environment.getDataDirectory()...如果你能给我一个很好的例子...我只是做了一个快速谷歌搜索,找不到我要找的东西......再次感谢到目前为止你帮了我很多!
我找到了这个答案:android: How to copy files in 'assets' to sdcard?。如果有帮助,请告诉我。
非常感谢,我现在就去试试【参考方案2】:
我想你只是在写完后忘记调用flush
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(("0").getBytes());
fos.flush();
fos.close();
【讨论】:
以上是关于如何写入文本文件并将其保存以供多次使用的主要内容,如果未能解决你的问题,请参考以下文章
React Native:如何创建文本文件并将其保存到外部存储
如何在 C++ 上读取文件、反转部分文本并将反转的部分写入另一个文件?