Java 使用FileWriter进行基本字符串编辑
我有两个字符串要添加到txt文件中。第一个字符串需要在第一行中,第二个字符串需要在第二行中。“\n”命令似乎不起作用,因为在我的输出文件中,两个字符串都在一行中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 +
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爵士说的我认为“严重”不,没有。谢谢,这对我很有用。