Java, FileWriter(file, true) 不附加到文件

Java, FileWriter(file, true) dosen't append on file

我有一个每 5 秒刷新一次的可运行线程。 此线程要写入以时间和日期命名的文件。

我检查文件是否存在,我想在现有文件上追加新的更新,当发生微小变化时,生成一个新文件并每 5 秒对其执行一次相同的操作。

申请基于JFrame申请表

Runnable helloRunnable = new Runnable(){

    @override
    public void run(){
        try{
            String FileName = Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + Calendar.getInstance().get(Calendar.MINUTE) + ".txt";

            File f = new File(FileName);
            FileWriter filewriter = new FileWriter(FileName);
            BufferedWriter bufferedWriter = new BufferedWriter(filewriter);

            FileWriter filewriter2 = new FileWriter(f, true);
            BufferedWriter = bufferedWriter2 = new BufferedWriter(filewriter2);

            if (f.isFile() && !f.isDirectory()){ 
                bufferedWriter2.write("Hello"); //this part doesn't append "Hello" in file (as i want) but overwrite the existing file
                bufferedWriter2.close();
            }else{
                bufferedWriter.write("Hello"); //this part must overwrite the existing file so i think this work
                bufferedWriter.close();
            }

        } catch (IOExcception ex){
            Logger.getLogger(Gestionale.class.getName()).log(Level.SEVERE,nell,ex);
        }
    }
};
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
SchedulateFuture<?> ez = executor.scheduleFixedRate(helloRunnable,0,5,TimeUnit.SECONDS);

您总是在实例化 FileWriter 来覆盖现有文件。

FileWriter filewriter = new FileWriter(FileName);

此行之后文件将始终为空。
您必须将 FileWriter 对象的创建移动到 if 语句中。