无法在Android中写入文件

格鲁克斯

这使我发疯,因为它应该起作用。我正在尝试将两个字符串arraylist写入文件。请记住,我正在写内部存储,因此清单权限不是这里的问题。这是我的代码:

File cacheFile = new File(context.getFilesDir(), getChannelFile(s[0]) + ".cache");
if (!cacheFile.exists()) {
    try {
        FileWriter out = new FileWriter(cacheFile);
        for (int i = 0; i < titleArray.size(); i++) {
            Log.d(timesArray.get(i), titleArray.get(i));
            out.write(timesArray.get(i) + "#" + titleArray.get(i));
            out.write(System.getProperty("line.separator"));
        }
        out.close();
        } catch (Exception e) {
            Log.e(Ids.TAG, e.getMessage());
    }
}

Logcat准确显示了我要写的内容。但是它不会写入文件。执行此代码后,将创建我的文件,但该文件为0字节。我很茫然,因为没有发现任何异常,而且我的Log.d表演一切都正确。我在这里想念什么?

用户名

从活动的onResume方法执行以下代码段即可。当然这不是最好的地方,但是可以进行测试。

    File cacheFile = new File(getFilesDir(), "test.cache");
    List<String> titleArray = new ArrayList<String>(Arrays.asList("a", "b", "c"));

    if (!cacheFile.exists()) {
        try {
            FileWriter out = new FileWriter(cacheFile);
            for (int i = 0; i < titleArray.size(); i++) {
                out.write(titleArray.get(i));
                out.write(System.getProperty("line.separator"));
            }
            out.close();
        } catch (Exception e) {
            Log.e("Test", e.getMessage());
        }
    }

我的问题可以使您得到答案:

  • 您尝试从什么上下文写入文件?广播接收器?从活动/服务尝试。
  • 您是从后台线程还是从主线程编写(不可想象的不同)?
  • 您确定有足够的空间吗?列表有多大?尝试编写一个包含几个字节的非常简单的文件,然后将其读回以确认其正常工作。
  • 您是否尝试过使用其他设备和/或仿真器?问题仍然存在吗?
  • 您正在构建和测试的Android版本是什么?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章