繁体   English   中英

逐行写入文件

[英]File writing line by line

我正在目录中编写一组文件。 这是我的代码

String directoryName = "logs";
    File directory = new File(String.valueOf(directoryName));
    if (!directory.exists()) {
        directory.mkdir();
    }

    System.out.println("Simulating logs....");
    for (int i = 0; i < 1440; i++) {

        long now = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(1);

        String fileName = now + ".txt";
        Path filePath = Paths.get(directoryName, fileName);

        LogGenerator generator = new LogGenerator(noOfServers);
        Set<String> logs = generator.generateLog();
        try {
            Files.write(filePath, logs, Charset.forName("US-ASCII"));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

问题在于,设置日志的所有元素都将被追加到第一个元素之后,并写入同一行。 这是发生在这一行,

Files.write(filePath, logs, Charset.forName("US-ASCII"));

我想在新行中写入集合的每个元素。 我怎样才能做到这一点?

这是javadoc关于write方法的内容:

“将文本行写入文件。每行都是一个char序列,并按顺序写入文件,每行都由平台的行分隔符终止,这是由系统属性line.separator定义的。使用指定的字符集。”

我假设该方法执行了javadoc明确指出的操作。 以下是一些可能的替代解释:

  • 这些行由generateLog()方法连接在一起。
  • Java关于平台行分隔符是什么(在运行代码的计算机上)与您用来查看文件的应用程序之间的想法是不匹配的。
  • 您正在不显示原始行分隔符的上下文中查看输出; 例如HTML文档...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM