我四处张望,却找不到我需要的东西。我正在编写一个简单的代码来将一些字符串保存到一个.txt文件中。
我正在使用:
File archivo = new File(FileName);
fileOutputStream.write(toString().getBytes());
fileOutputStream.flush();当我这样做,.txt是成功地创建和保存我需要保存的信息,但它保存在一个巨大的一行全部。我怎么能把它保存在不同的线上呢?
打开txt时的示例:
This is line 1This is line 2This is line 3This is line 4我在每个字符串的末尾加了'\n‘,但是它不起作用。
toString()返回一个字符串:“这是第1行”;OS: Windows 7
发布于 2013-09-02 14:42:02
你可以尝试做这样的事情:
public void write(final File file, final List<String> lines) throws IOException{
final BufferedWriter writer = new BufferedWriter(new FileWriter(file)); //new FileWriter(file, true) if you want to append the file (default is false)
for(final String line : lines){
writer.write(line);
writer.newLine();
}
writer.flush();
writer.close();
}如果您正在使用Java 8,可以尝试使用lambdas:
public void write(final File file, final List<String> lines) throws IOException{
final BufferedWriter writer = new BufferedWriter(new FileWriter(file)); //new FileWriter(file, true) if you want to append the file (default is false)
lines.forEach(
l -> {
try{
writer.write(l);
writer.newLine();
}catch(IOException ex){
ex.printStackTrace();
}
}
);
writer.flush();
writer.close();
}为了便于使用,您可以尝试如下:
write(new File(fileName), Arrays.asList("This is line 1", "This is line 2", "This is line 3", "This is line 4"));
发布于 2013-10-26 09:32:45
使用System.getProperty("line.separator"),,它将返回操作系统使用的序列来分隔文本文件中的行。
像这样试试。
File archivo = new File(FileName);
fileOutputStream.write(toString().getBytes());
fileOutputStream.write(System.getProperty("line.separator").getBytes());
fileOutputStream.flush();参考文献:http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
发布于 2021-05-05 03:36:08
我认为您应该在编写之前将'\n‘添加到StringBuilder中。
StringBuilder sb = new StringBuilder();
sb.append("line 1" + "\n");
sb.append("line 2" + "\n");
sb.append("line 3" + "\n");fileOutputStream.write(sb.toString().getBytes());
https://stackoverflow.com/questions/18575649
复制相似问题