使用FileWriter编辑基本字符串

时间:2018-01-18 12:08:35

标签: java filewriter

我想要添加到txt文件中的2个字符串。第一个String需要在第一行中,第二个在第二行中。 " \ n"命令似乎不起作用,因为在我的输出文件中,两个字符串都在一行中。

    FileWriter writer = new FileWriter(measurements);
    String text1 = x.measurementToString(x);
    String text2 = z.measurementToString(z);
    writer.write(text1 + "\n" + text2);
    writer.close();
    System.out.println("Strings added to file!");

3 个答案:

答案 0 :(得分:1)

由于新行字符在不同的操作系统中不同,因此您可以使用#-- regex-replace an occurence by count $s = "…abc…abc…abc…"; $counter = 1; $s = preg_replace_callback("/abc/", function ($m) use (&$counter) { #-- replacement for 2nd occurence of "abc" if ($counter++ == 2) { return "def"; } #-- else leave current match return $m[0]; }, $s); 在运行时获取操作系统的换行符。

对于Java 7,您还可以使用$counter

答案 1 :(得分:0)

也许您在Windows上并使用无法将\n识别为行分隔符的工具打开文件,例如记事本?

使用the Files class中的方法可以更轻松地处理文件I / O.在你的情况下:

Path p = Paths.get("C:/path/to/your/file/filename.ext");
//or
Path p = measurements.toPath();

Files.write(p, Arrays.asList(text1, text2), StandardCharsets.UTF_8);

这将使用您计算机上的默认行分隔符,并应解决您的问题。

答案 2 :(得分:0)

改为使用PrintWriter.println()。

必须是这样的:

System.lineSeparator()