javastringnewlineline-breaks

How to remove line breaks from a file in Java?


How can I replace all line breaks from a string in Java in such a way that will work on Windows and Linux (ie no OS specific problems of carriage return/line feed/new line etc.)?

I've tried (note readFileAsString is a function that reads a text file into a String):

String text = readFileAsString("textfile.txt");
text.replace("\n", "");

but this doesn't seem to work.

How can this be done?


Solution

  • You need to set text to the results of text.replace():

    String text = readFileAsString("textfile.txt");
    text = text.replace("\n", "").replace("\r", "");
    

    This is necessary because Strings are immutable -- calling replace doesn't change the original String, it returns a new one that's been changed. If you don't assign the result to text, then that new String is lost and garbage collected.

    As for getting the newline String for any environment -- that is available by calling System.getProperty("line.separator").