为了账号安全,请及时绑定邮箱和手机立即绑定

如何在启动时将数据写入文件

如何在启动时将数据写入文件

慕尼黑5688855 2022-12-21 16:47:20
我正在使用下面的代码在文件中写入数据。public static void writeDataToFile(final String fileName, final String fileContents) {    try {        File file = new File(Environment.getExternalStorageDirectory() + fileName);        if (!file.exists()) {            file.createNewFile();        }        FileWriter writer = new FileWriter(file, true);        writer.append(fileContents);        writer.flush();        writer.close();    } catch (IOException e) {        LogUtility.logInfo(TAG, e.getMessage());    }}这里的FileWriter构造函数采用布尔值,这意味着它每次都将数据连接到文件到最后一个数据。我想要得到的是有一个文件,其中包含我正在执行的活动的日志。我是通过上述代码实现的。但问题是它总是每次都将日志连接到最后一个数据。我想要的是每次都在开始时写新日志。这样我就不会在底部搜索文件以获取最后一个日志。它将在每个时间开始。任何帮助
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

如果文件不存在,则说明您已编写代码来创建新文件。同样,如果文件存在,您可以删除该文件,并创建一个新文件


在删除旧文件之前,可以将内容复制到一个String中,在写入文件之前将其添加到要写入文件的内容中。


StringBuilder contentToWrite = new StringBuilder();

contentToWrite.append(newContent);

if (!file.exists()) {

    file.createNewFile();

} else {

    FileReader fileReader = new FileReader(file);

    BufferedReader bufferedReader = new BufferedReader(fileReader);

    String line = bufferedReader.readLine();

    StringBuilder sb = new StringBuilder();

    while (line != null) {

        sb.append(line).append("\n");

        line = bufferedReader.readLine();

    }

    contentToWrite.append("\n\n" + sb);

    file.delete();

    file.createNewFile();

}

FileWriter writer = new FileWriter(file, true);

writer.append(contentToWrite);

writer.flush();

writer.close();

PS:不要忘记在 finally 语句中关闭 FileReader 和 BufferedReader。


查看完整回答
反对 回复 2022-12-21
?
守着一只汪

TA贡献1872条经验 获得超3个赞

如果文件存在,为什么不删除它:


    if (!file.exists()) {

        file.createNewFile();

    } else {

        file.delete()

        file.createNewFile();

    }


查看完整回答
反对 回复 2022-12-21
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

您可以在FileWriter构造函数中将追加标志设置为 false。然后,使用write()函数而不是append()函数

FileWriter writer = new FileWriter(file, false);
writer.write(fileContents);


查看完整回答
反对 回复 2022-12-21
  • 3 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信