我想要实现的是创建一个文件,而不管该文件是否存在。我尝试使用File.createNewFile(),但只有在文件不存在时才会创建该文件。我应该先使用File.delete(),然后再使用File.createNewFile()吗?或者有没有更清晰的方法?
File.createNewFile()
File.delete()
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
9w11ddsr2#
您可以使用合适的Writer:
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,则字节将写入文件的结尾而不是开头。
8nuwlpux3#
调用File#createNewFile是安全的,假设路径是有效的,并且你对它有写权限,如果已经有一个文件使用这个名字,它只会返回false:
File#createNewFile
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.
3条答案
按热度按时间nzk0hqpo1#
FileWriter有一个构造函数,它也接受2个参数:文件名和一个布尔值。布尔值指示是追加还是覆盖现有文件。下面是两个Java FileWriter示例:
9w11ddsr2#
您可以使用合适的
Writer
:如果文件abc.txt不存在,它将创建一个文件abc.txt,如果存在,它将覆盖该文件。
您还可以使用FileWriter的另一个构造函数以追加模式打开文件:
上述构造函数的文档说明:
在给定File对象的情况下构造FileWriter对象。如果第二个参数为true,则字节将写入文件的结尾而不是开头。
8nuwlpux3#
调用
File#createNewFile
是安全的,假设路径是有效的,并且你对它有写权限,如果已经有一个文件使用这个名字,它只会返回false: