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

Java 创建一个新文件,或覆盖现有文件

Java 创建一个新文件,或覆盖现有文件

Qyouu 2021-10-20 14:44:18
我想要实现的是无论文件是否存在都创建一个文件。我尝试使用,File.createNewFile()但只有在文件不存在时才会创建文件。我应该使用File.delete()然后File.createNewFile()吗?或者有更清晰的方法吗?
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

FileWriter 有一个构造函数,它也接受 2 个参数:文件名和一个布尔值。布尔值指示是附加还是覆盖现有文件。以下是两个 Java FileWriter 示例,表明:


Writer fileWriter = new FileWriter("c:\\data\\output.txt", true);  //appends to file


Writer fileWriter = new FileWriter("c:\\data\\output.txt", false); //overwrites file


查看完整回答
反对 回复 2021-10-20
?
慕标5832272

TA贡献1966条经验 获得超4个赞

您可以使用合适的Writer:


BufferedWriter br = new BufferedWriter(new FileWriter(new File("abc.txt")));

br.write("some text");

如果它不存在,它将创建一个文件 abc.txt。如果是,它将覆盖该文件。


您还可以使用 FileWriter 的另一个构造函数以追加模式打开文件:


BufferedWriter br = new BufferedWriter(new FileWriter(new File("abc.txt"), true));

br.write("some text");

上述构造函数的文档说:


给定一个 File 对象构造一个 FileWriter 对象。如果第二个参数为真,则字节将写入文件的末尾而不是开头。


查看完整回答
反对 回复 2021-10-20
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

调用File#createNewFile是安全的,假设路径有效并且您对其具有写入权限。如果同名的文件已经存在,它只会返回 false:


File f = new File("myfile.txt");

if (f.createNewFile()) {

    // If there wasn't a file there beforehand, there is one now.

} else {

   // If there was, no harm, no foul

}


// And now you can use it.


查看完整回答
反对 回复 2021-10-20
  • 3 回答
  • 0 关注
  • 917 浏览

添加回答

举报

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