Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Carriage returns/line breaks with \n in strings in Android

I'm writing an Android app where I'm writing a file to disk with one data value per line. Later, such files can be read back into the app, and this simple data format is deserialized back into an array. At the moment, I'm delineating data values/lines in the serialization and deserialization code with \n.

How does Android handle carriage returns and such line breaks? Can I use \n safely in this context?

like image 241
Maxim Zaslavsky Avatar asked Jan 01 '12 14:01

Maxim Zaslavsky


3 Answers

Its better to use

String lineSep = System.getProperty("line.separator");
like image 83
Rajdeep Dua Avatar answered Sep 17 '22 23:09

Rajdeep Dua


Yes, the line separator under Windows is \r\n (CR+LF), on Mac \r and on Linux (Android) \n. Java has a clever reader which returns the line without separator, and a println which uses the platform setting System.getProperty("line.separator").

like image 23
Joop Eggen Avatar answered Sep 18 '22 23:09

Joop Eggen


1 - like the two people before me I say, System.getProperty("line.separator") is your friend.

2 - As android is based on linux it is most likely that the line.separator property is in fact \n

3 - When reading or writing your files use buffered reader and writer an respectively their methods readLine and newLine. You should not have any trouble dealing with input/output files from/for other platforms.

like image 32
A4L Avatar answered Sep 18 '22 23:09

A4L