Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
284 views
in Technique[技术] by (71.8m points)

java - Write to a specific file every 10 secs

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:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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);
        }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...