2012-02-16 16 views
5

Próbuję napisać nową linię do pliku tekstowego w systemie Android.Android nie napisze nowej linii w pliku tekstowym

Oto mój kod:

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(); 
} 

Próbowałem \n, \r\n i ja również postarać się o właściwość systemu do nowej linii, żaden z nich nie działa.

Zmienna danych zawiera wcześniej dane z tego samego pliku.

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(); 
} 
+0

Co masz na myśli "nie działa"? Jak to sprawdzić? Spróbuj również zastąpić 'dane' czymś prostym jak" foo "i sprawdź czy zmienna zawartość powodować problemy –

+0

Po otwarciu w textedit, słowo lub inny program.Nowe linie nie są wyświetlane – NikolajSvendsen

+0

Próbowałem z manekina, to nie w ork. – NikolajSvendsen

Odpowiedz

0

Zrobiłem podobny program i zadziałało to dla mnie. Jednak zaobserwowałem dziwne zachowanie. Dodał te nowe linie do pliku, jednak kursor pozostał w pierwszym wierszu. Jeśli chcesz zweryfikować, napisz String po znakach nowej linii, zobaczysz, że String jest napisany tuż poniżej tych nowych linii.

0

Wystąpił ten sam problem i nie mogłem napisać nowej linii. Zamiast tego używam BufferdWritter, aby napisać nową linię do pliku i działa ona dla mnie. Oto sniplet przykładowy kod:

OutputStreamWriter out = new OutputStreamWriter(openFileOutput("cache.txt",0)); 
BufferedWriter bwriter = new BufferedWriter(out); 
// write the contents to the file 
bwriter.write("Input String"); //Enter the string here 
bwriter.newLine(); 
2

miałem te same problemy, próbował każdy trick w książce.

Mój problem: znak nowej linii zostały napisane, ale podczas czytania zostały one usunięte:

while (readString != null) { 
       datax.append(readString); 
       readString = buffreader.readLine(); 
      } 

Plik został odczytany linia po linii i łączone, więc zniknął znak nowej linii jest.

nie zajrzeć do pliku oryginalnego w Notatniku czy coś, bo nie wiem, gdzie szukać na moim telefonie, a mój logscreen stosować kod, który usuwa :-(znaku nowej linii za

więc prosty soultion było umieścić go z powrotem podczas czytania:

while (readString != null) { 
       datax.append(readString); 
       datax.append("\n"); 
       readString = buffreader.readLine(); 
      } 
Powiązane problemy