linefeed character reading in java

carriage-return, java, linefeed

Solution

Java internally works with Unicode.

The Unicode standard defines a large number of characters that conforming applications should recognize as line terminators:[3] LF: Line Feed, U+000A VT: Vertical Tab, U+000B FF: Form Feed, U+000C CR: Carriage Return, U+000D CR+LF: CR (U+000D) followed by LF (U+000A) NEL: Next Line, U+0085 LS: Line Separator, U+2028 PS: Paragraph Separator, U+2029

(http://en.wikipedia.org/wiki/Newline) That's why it interprets `\n` as newline.

Problem

I am wondering that when I open a file in notepad. I see a continuous line without any carriage return/line feed. I made a java program to read the file. When I split the data from file by using `\n` or `System.getProperty("line.separator");`. I see lots of lines. I found in hex editor that file has '0A' for new line ( used in UNIX ) and it appears as a rectangle in Notepad. Well, my question is that if it doesn't have '0D' and 'OA' ( used in Windows for carriage return and line feed ). How my java program is splitting the data into lines? It should not split it. Anyone have any idea?

Original source