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 语句中。
我有一个每 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 语句中。