一个应用程序需要创建一个名为 'log.txt' 的日志文件。若该文件已存在,则需要在不删除原有内容的情况下,将新的日志信息追加到文件末尾。以下哪种方式可以确保日志信息被正确追加且不会丢失原有数据?
答案解析
选项A 使用 `FileWriter(String filename)` 构造方法时,如果文件存在,会覆盖原有内容,不符合要求。选项C 使用 `FileOutputStream` 追加写入需要自行处理字符编码问题,比较繁琐。选项D 会先读取整个文件,然后修改后再全部写入,效率较低,且不适用于大型文件。选项B 使用 `FileWriter` 的 `FileWriter(String filename, boolean append)` 构造方法并传入 `true` 可以保证在文件已存在的情况下追加内容,且避免了字符编码的问题,因此是正确答案。
* 选项 A: `FileWriter(String filename)` 构造方法会覆盖文件内容,不符合题意。
* 选项 B: `FileWriter(String filename, boolean append)` 构造方法并传入 `true` 可以实现追加,正确。
* 选项 C: 使用 `FileOutputStream` 必须自行进行编码转换,麻烦且容易出错,不推荐。
* 选项 D: 读取整个文件到内存,然后写入整个文件,操作效率低,且当文件较大时,容易造成内存溢出,不推荐。
正确答案:B