java—每10秒写入一个特定文件

iugsix8n  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(390)

我正在尝试使用springboot的@scheduled将当前系统时间每10秒打印到一个特定的文本文件中。
我已经成功地创建了如下内容:

@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()
    }
}

我不知道我是在创建一个新文件还是在最初创建的“envvarfile”文件上写。
如果有人能帮忙,我会很高兴的。
!重要!:@rakesh的解决方案是有效的,但当应用于代码时,envvarfile.txt位于c中的temp目录下:

ix0qys7i

ix0qys7i1#

请在下面使用

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

相关问题