我有一个创建.txt文件的应用程序。我想覆盖它。这是我的功能:
try{
String test = "Test string !";
File file = new File("src\\homeautomation\\data\\RoomData.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}else{
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(test);
bw.close();
System.out.println("Done");
}catch(IOException e){
e.printStackTrace();
}
如果文件存在,我应该在else子句中放入什么,以便可以覆盖?
答案 0 :(得分:6)
你不需要在else子句中做任何特别的事情。实际上,您可以使用Writer
打开一个具有两种不同模式的文件:
true
的布尔值指定),将新数据附加到现有模式答案 1 :(得分:2)
只需在您的else块中调用file.delete()
即可。这应该删除该文件,如果这是你想要的。
答案 2 :(得分:0)
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。
以下一行代码将帮助我们将文件设为空。
FileUtils.write(new File("/your/file/path"), "")
以下代码将帮助我们删除该文件。
try{
File file = new File("src\\homeautomation\\data\\RoomData.txt");
if(file.delete()){
System.out.println(file.getName() + " is deleted!");
}else{
System.out.println("Delete operation is failed.");
}
}catch(Exception e){
e.printStackTrace();
}
答案 3 :(得分:0)
您无需执行任何操作,默认行为是覆盖。
不知道为什么我被低估了,严重...这段代码将始终覆盖文件
try{
String test = "Test string !";
File file = new File("output.txt");
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(test);
bw.close();
System.out.println("Done");
}catch(IOException e){
e.printStackTrace();
}