我有以下代码:
FileWriter filewriter = null;
try { filewriter = new FileWriter("outUser.txt", true); }
catch (IOException e1) { e1.printStackTrace(); }
try {
filewriter.write(s1+"\n");
filewriter.flush();
}
catch (IOException e1) { e1.printStackTrace(); }
它应该在outUser
文件上写s1 string
和换行符。它只写s1
,新行不写。我还尝试使用一个等于\n
的新字符串,并在写入时将其附加到s1
,但仍然无法正常工作。你们中有人对我有一些答案吗?
答案 0 :(得分:2)
换行符应该在那里,但请记住,不同的操作系统有不同的换行符
如果运气不好,您可以随时尝试BufferedWriter.newLine()
。
答案 1 :(得分:2)
不同的操作系统有不同的方式来表示换行符。
例如,在UNIX中使用\n
,但在Windows中使用\r\n
。
This回答了Windows使用\r
您可以使用System.lineSeparator()返回与系统相关的行分隔符字符串。
答案 2 :(得分:0)
使用文本编辑器(如notepad ++)打开outUser.txt
并启用“不可打印”字符。您应该会看到CR/LF
,即\n
。
答案 3 :(得分:0)
以下内容应该有效
FileWriter filewriter = null;
try {
filewriter = new FileWriter("outUser.txt", true);
BufferedWriter buffWriter = new BufferedWriter(fileWriter);
} catch (IOException e1) {
e1.printStackTrace();
}
try {
buffwriter.write(s1+"\n");
buffWriter.newLine();
buffwriter.flush();
}
catch (IOException e1) {
e1.printStackTrace();
}
答案 4 :(得分:0)
这样做
FileWriter filewriter = null;
try {
filewriter = new FileWriter("c:\\outUser.txt", true);
} catch (IOException e1) {
e1.printStackTrace();
}
try {
filewriter.write("hi"+System.getProperty("line.separator"));
filewriter.write("asd");
filewriter.flush();
}
catch (IOException e1) {
e1.printStackTrace();
}
使用行分隔符属性将下一行打印到文件。