Android won't write new line in text file
Solution 1
I executed a similar program and it worked for me. I observed a strange behavior though. It added those new lines to the file, however the cursor remained at the first line. If you want to verify, write a String
after your newline characters, you will see that the String
is written just below those new lines.
Solution 2
I had the same problems, tried every trick in the book.
My problem: the newline's were written, but while reading they were removed:
while (readString != null) {
datax.append(readString);
readString = buffreader.readLine();
}
The file was read line by line and concatenated, so the newline's disappeared.
I did not look at the original file in Notepad or something because I didn't know where to look on my phone, and my logscreen used the code which removed the newline's :-(
So the simple soultion was to put it back while reading:
while (readString != null) {
datax.append(readString);
datax.append("\n");
readString = buffreader.readLine();
}
NikolajSvendsen
Updated on July 22, 2022Comments
-
NikolajSvendsen almost 2 years
I am trying to write a new line to a text file in android.
Here is my code:
FileOutputStream fOut; try { String newline = "\r\n"; fOut = openFileOutput("cache.txt", MODE_WORLD_READABLE); OutputStreamWriter osw = new OutputStreamWriter(fOut); osw.write(data); osw.write(newline); osw.flush(); osw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
I have tried
\n
,\r\n
and I did also try to get the system property for a new line, neither of them work.The data variable contains previously data from the same file.
String data = ""; try { FileInputStream in = openFileInput("cache.txt"); StringBuffer inLine = new StringBuffer(); InputStreamReader isr = new InputStreamReader(in, "ISO8859-1"); BufferedReader inRd = new BufferedReader(isr,8 * 1024); String text; while ((text = inRd.readLine()) != null) { inLine.append(text); } in.close(); data = inLine.toString(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }