I am trying to use spring boot's @Scheduled to print current system time to a specific text file every 10 seconds.
I have managed to create something like below:
@Scheduled(fixedRate = 10000) // 10 seconds
public void writeToMyFile() {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\temp\\envVarFile.txt", true));
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
try {
writer.append(formatter.format(System.currentTimeMillis()));
}
catch(IOException e){
e.printStackTrace()
}
writer.close();
}
catch(Exception e) {
e.printStackTrace()
}
}
I don't know if I am creating a file new file or I am writing on the initially created "envVarFile" file.
I would be glad if someone could help.
!Important!: The solution of @Rakesh works but when applied to the code under the circumstances of the envVarFile.txt being present under the directory of temp which is inside C:
Please use below
File yourfile = new File(filename);
if(yourfile.exists()){
writer = Files.newBufferedWriter(Paths.get(filename), StandardCharsets.UTF_8,StandardOpenOption.APPEND);
}else{
writer = Files.newBufferedWriter(Paths.get(filename), StandardCharsets.UTF_8,StandardOpenOption.CREATE_NEW);
}