Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除旧文件,然后在目录java中添加新文件,而不使用FileUtils_Java_File_Bufferedwriter - Fatal编程技术网

删除旧文件,然后在目录java中添加新文件,而不使用FileUtils

删除旧文件,然后在目录java中添加新文件,而不使用FileUtils,java,file,bufferedwriter,Java,File,Bufferedwriter,我每天都在将新文件写入目录 BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\difftest\\newfiles\\"+decisionList.get(i)+"_"+i+".txt")); 在创建新文件之前,我想删除文件夹中以前添加的文件。并且,由于文件名不同,以前的文件不会被新文件覆盖。我怎样才能做到这一点 以下代码可能会有所帮助 这只是你能做什么的想法,我不确定是否有bug public class rename {

我每天都在将新文件写入目录

BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\difftest\\newfiles\\"+decisionList.get(i)+"_"+i+".txt"));

在创建新文件之前,我想删除文件夹中以前添加的文件。并且,由于文件名不同,以前的文件不会被新文件覆盖。我怎样才能做到这一点

以下代码可能会有所帮助

这只是你能做什么的想法,我不确定是否有bug

public class rename 
{ 
    public static void main(String[] argv) throws IOException 
    { 
         // Path of folder where files are located 
         String folder_path = 
           "C:\\Users\\Anannya Uberoi\\Desktop\\myfolder"; 

         // creating new folder 
         File myfolder = new File(folder_path); 

         File[] file_array = myfolder.listFiles(); 
         for (int i = 0; i < file_array.length; i++) 
         { 

            if (file_array[i].isFile()) 
            { 

                File myfile = new File(folder_path + 
                     "\\" + file_array[i].getName()); 
                myfile.delete(); 
            } 
        } 
    } 
} 

您可以使用此一行代码从给定目录中删除所有现有文件

Arrays.asList(new File("C:\\difftest\\newfiles").listFiles()).stream().forEach(File::delete);
所以,只需将这行代码放在BufferedWriter行之前,如下所示

Arrays.asList(new File("C:\\difftest\\newfiles").listFiles()).stream().forEach(File::delete);
BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\difftest\\newfiles\\"+decisionList.get(i)+"_"+i+".txt"));

是否要删除该目录中的所有文件,还是仅删除名称遵循特定模式的文件?如果希望目录为空,请列出目录中的文件并将其全部删除。否则您还需要某种文件名匹配。@RobertKock我想删除所有文件,即在执行bufferedWriter之前清空整个目录。您可以删除该目录,重新创建并保存新文件。@htpvl您能告诉我如何删除包含文件的目录吗?谢谢,@hamid这对我很有用。谢谢@Pushpesh它起作用了:很高兴帮助Richa:它告诉我你接受了我的答案,然后突然我发现它被拒绝了。有什么原因吗?您认为我的解决方案不够好?两次意外单击“接受”图标。