Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用FileWriter进行基本字符串编辑_Java_Filewriter - Fatal编程技术网

Java 使用FileWriter进行基本字符串编辑

Java 使用FileWriter进行基本字符串编辑,java,filewriter,Java,Filewriter,我有两个字符串要添加到txt文件中。第一个字符串需要在第一行中,第二个字符串需要在第二行中。“\n”命令似乎不起作用,因为在我的输出文件中,两个字符串都在一行中 FileWriter writer = new FileWriter(measurements); String text1 = x.measurementToString(x); String text2 = z.measurementToString(z); writer.write(text1 +

我有两个字符串要添加到txt文件中。第一个字符串需要在第一行中,第二个字符串需要在第二行中。“\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!");

可能您在windows上打开文件时使用的工具无法将
\n
识别为行分隔符,例如记事本

使用中的方法,文件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);

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

由于新行字符在不同的操作系统中不同,您可以使用
System.getProperty(“line.separator”)
在运行时获取操作系统的新行字符

对于Java 7,您还可以使用
System.lineSeparator()

改用PrintWriter.println()

一定是这样的:

try (PrintWriter writer = new PrintWriter(file)) {
    writer.println(text1);
    writer.println(text2);
}

对我来说工作很好。Java会自动将
\n
转换为适合您所在平台的任何内容。@severit您确定吗?这顶帽子会让我大吃一惊。如果我写一个字符常量,我不希望Java会弄乱它。@SeverityOne我认为它不会这样做,如果那样的话,那将是违反直觉的。这是JonSkeet爵士说的我认为“严重”不,没有。谢谢,这对我很有用。