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

u2nhd7ah  于 2022-12-25  发布在  Java
关注(0)|答案(3)|浏览(333)

我想要实现的是创建一个文件,而不管该文件是否存在。
我尝试使用File.createNewFile(),但只有在文件不存在时才会创建该文件。我应该先使用File.delete(),然后再使用File.createNewFile()吗?
或者有没有更清晰的方法?

nzk0hqpo

nzk0hqpo1#

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
9w11ddsr

9w11ddsr2#

您可以使用合适的Writer

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

如果文件abc.txt不存在,它将创建一个文件abc.txt,如果存在,它将覆盖该文件。
您还可以使用FileWriter的另一个构造函数以追加模式打开文件:

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

上述构造函数的文档说明:
在给定File对象的情况下构造FileWriter对象。如果第二个参数为true,则字节将写入文件的结尾而不是开头。

8nuwlpux

8nuwlpux3#

调用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.

相关问题