【问题标题】:Android BufferedWriter : Empty File Saved.Android BufferedWriter:已保存空文件。
【发布时间】:2016-06-24 06:28:44
【问题描述】:

我遇到了一个问题,无法识别它。情况是,我有一个活动,我通过单击某个按钮将 JSON 文件保存到存储中。有时文件是空文件(0 KB)。因此,大多数情况下它都按预期工作,但这个 0 KB 的文件让人头疼。根本没有例外。

提前致谢!

BufferedWriter bw = null;

try {
    File file = new File(path);
    if (!file.exists()) {
        file.createNewFile();
    }
    bw = new BufferedWriter(new FileWriter(file, false));
    bw.write(content);

} catch (Exception e) {
    Logger.e(mContext,"Write To File",e.toString());
}
finally {
    try {
        if (bw != null) {
           bw.close();
        }
    }catch (Exception e)
    {
        Logger.e(mContext,"Write To File",e.toString());
    }
}

【问题讨论】:

  • 你用调试器单步调试过代码吗?
  • 是的,但问题是,千分之一的发生。我写了一个测试用例来测试这个功能,但无法复制这个问题。
  • 请确认“content”变量在这些情况下不为空添加:Logger.d(mContext,"content",content);文件为空时检查logcat
  • 您是否在应用程序的其他位置使用了完全相同的文件?也许您在某个地方打开文件进行写入并截断文件
  • @Khaledvic:不,我没有地方可以写入同一个文件。

标签: java android filesystems bufferedwriter


【解决方案1】:

我遇到了同样的问题。就这样解决了:

fw = new FileWriter(file, false);
bw = new BufferedWriter(fw);
...
bw.flush();
bw.close();
fw.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多