Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write new line character to a file in Java

Tags:

java

newline

I have a string that contains new lines. I send this string to a function to write the String to a text file as:

    public static void writeResult(String writeFileName, String text)     {         try         {         FileWriter fileWriter = new FileWriter(writeFileName);         BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);          bufferedWriter.write(text);          // Always close files.         bufferedWriter.close();          }         catch(IOException ex) {             System.out.println("Error writing to file '"+ writeFileName + "'");}     } //end writeResult function 

But when I open the file, I find it without any new lines. When I display the text in the console screen, it is displayed with new lines. How can I write the new line character in the text file.

EDIT: Assume this is the argument text that I sent to the function above:

I returned from the city about three o'clock on that may afternoon pretty well disgusted with life. I had been three months in the old country, and was 

How to write this string as it is (with new lines) in the text file. My function write the string in one line. Can you provide me with a way to write the text to the file including new lines ?

EDIT 2: The text is originally in a .txt file. I read the text using:

while((line = bufferedReader.readLine()) != null) { sb.append(line); //append the lines to the string sb.append('\n'); //append new line } //end while 

where sb is a StringBuffer

like image 941
user2192774 Avatar asked Sep 29 '13 23:09

user2192774


People also ask

How do you write multiple lines in a text file in Java?

boolean append = true; String filename = "/path/to/file"; BufferedWriter writer = new BufferedWriter(new FileWriter(filename, append)); // OR: BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename, append))); writer. write(line1); writer. newLine(); writer.

What does \n do in Java?

What does \n mean in Java? This means to insert a new line at this specific point in the text. In the below example, "\n" is used inside the print statement, which indicates that the control is passed to the next line. As a result, the text following "\n" will be printed on the next line.

How do you write a line in Java?

writer. write("\nCHECK!\ n"); the first "\n" forces the "CHECK" to be written in a new line.


2 Answers

In EDIT 2:

while((line = bufferedReader.readLine()) != null) {   sb.append(line); //append the lines to the string   sb.append('\n'); //append new line } //end while 

you are reading the text file, and appending a newline to it. Don't append newline, which will not show a newline in some simple-minded Windows editors like Notepad. Instead append the OS-specific line separator string using:

sb.append(System.lineSeparator()); (for Java 1.7 and 1.8) or sb.append(System.getProperty("line.separator")); (Java 1.6 and below)

Alternatively, later you can use String.replaceAll() to replace "\n" in the string built in the StringBuffer with the OS-specific newline character:

String updatedText = text.replaceAll("\n", System.lineSeparator())

but it would be more efficient to append it while you are building the string, than append '\n' and replace it later.

Finally, as a developer, if you are using notepad for viewing or editing files, you should drop it, as there are far more capable tools like Notepad++, or your favorite Java IDE.

like image 150
lreeder Avatar answered Oct 04 '22 12:10

lreeder


SIMPLE SOLUTION

File file = new File("F:/ABC.TXT"); FileWriter fileWriter = new FileWriter(file,true); filewriter.write("\r\n"); 
like image 29
user3205467 Avatar answered Oct 04 '22 10:10

user3205467