将换行符写入文件

考虑以下function

private static void GetText(String nodeValue) throws IOException { if(!file3.exists()) { file3.createNewFile(); } FileOutputStream fop=new FileOutputStream(file3,true); if(nodeValue!=null) fop.write(nodeValue.getBytes()); fop.flush(); fop.close(); } 

要添加什么才能让它在下一行中每次写入?

例如,我想要一个单独的lline中给定字符串的每个单词,例如:

 i am mostafa 

写道:

  i am mostafa 

要将文本(而不是原始字节)写入文件,您应该考虑使用FileWriter 。 您还应该将它包装在BufferedWriter中 ,然后它将为您提供newLine方法。

要在新行上写下每个单词,请使用String.split将文本分成单词数组。

所以这是对您的要求的简单测试:

 public static void main(String[] args) throws Exception { String nodeValue = "i am mostafa"; // you want to output to file // BufferedWriter writer = new BufferedWriter(new FileWriter(file3, true)); // but let's print to console while debugging BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); String[] words = nodeValue.split(" "); for (String word: words) { writer.write(word); writer.newLine(); } writer.close(); } 

输出是:

 i am mostafa 

改变线条

 if(nodeValue!=null) fop.write(nodeValue.getBytes()); fop.flush(); 

 if(nodeValue!=null) { fop.write(nodeValue.getBytes()); fop.write(System.getProperty("line.separator").getBytes()); } fop.flush(); 

更新以解决您的编辑问题

为了将每个单词写在不同的行上,您需要拆分输入字符串,然后分别编写每个单词。

 private static void GetText(String nodeValue) throws IOException { if(!file3.exists()) { file3.createNewFile(); } FileOutputStream fop=new FileOutputStream(file3,true); if(nodeValue!=null) for(final String s : nodeValue.split(" ")){ fop.write(s.getBytes()); fop.write(System.getProperty("line.separator").getBytes()); } } fop.flush(); fop.close(); } 
 if(!file3.exists()){ file3.createNewFile(); } FileOutputStream fop=new FileOutputStream(file3,true); if(nodeValue!=null) fop.write(nodeValue.getBytes()); fop.write("\n".getBytes()); fop.flush(); fop.close(); 

您需要在每次写入结束时添加换行符。

您可以通过PrintStream进行打印。

 PrintStream ps = new PrintStream(fop); ps.println(nodeValue); ps.close(); 

其他答案应该有效。 不过我想提一下

来自java doc:

FileWriter用于编写字符流。 要编写原始字节流,请考虑使用FileOutputStream

读取你的方法代码,你要将String写入文件,你正在做的是将String转换为原始字节,然后写,所以我认为使用FileWriter并不是一个坏主意。

对于换行问题,Writer有方法.write(String),方便使用。

或者您可以使用以下内容。 注意“\ n”:

 /** * Created by mona on 3/26/16. */ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.BufferedReader; public class FileExample { public static void main (String[] args) throws java.io.IOException { File newFile = new File("tweet.txt"); FileWriter fileWriter = new FileWriter(newFile); fileWriter.write("Mona Jalal"); fileWriter.append("\nMona Mona"); fileWriter.close(); FileReader fileReader = new FileReader(newFile); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } fileReader.close(); bufferedReader.close(); } } 

如果您使用的是Windows操作系统,只需使用\ r \ n作为endline。

解:

在WINDOWS中,您应该为新行写"\r\n"

 Files.write(Paths.get(filepath),texttobewrittentofile,StandardOpenOption.APPEND ,StandardOpenOption.CREATE); 

这将创建一个文件,如果它不存在如果文件存在,则使用现有文件并附加文本如果要将每行写入下一行,请将换行的lineSepartor添加到文件中。

 String texttobewrittentofile = text + System.lineSeparator();