2012-02-16 8 views
5

Estoy tratando de escribir una nueva línea en un archivo de texto en Android.Android no escribirá una nueva línea en el archivo de texto

Aquí está mi código:

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

He tratado \n, \r\n y yo también tratar de obtener la propiedad del sistema para una nueva línea, ninguno de ellos trabajar.

La variable de datos contiene datos previamente del mismo archivo.

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

¿Qué quiere decir "no funcionan" ¿Cómo se comprueba que tratar también la sustitución de 'data' con algo tan simple como "foo" y comprobar si el contenido de la variable? causa problemas. –

+0

Cuando lo abro en textedit, word o cualquier otro programa. Las nuevas líneas no se muestran. – NikolajSvendsen

+0

Probé con el texto de relleno que no w ork. – NikolajSvendsen

Respuesta

0

He ejecutado un programa similar y funcionó para mí. Sin embargo, observé un comportamiento extraño. Agregó esas nuevas líneas al archivo, sin embargo, el cursor permaneció en la primera línea. Si desea verificar, escriba un String después de los caracteres de nueva línea, verá que el String está escrito justo debajo de esas líneas nuevas.

0

Estaba teniendo el mismo problema y no pude escribir una nueva línea. En su lugar, uso BufferdWritter para escribir una nueva línea en el archivo y funciona para mí. Aquí es una sniplet código de ejemplo:

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

que tenían los mismos problemas, intentó todos los trucos en el libro.

Mi problema: la nueva línea de los inscritos, pero al leer que fueron retirados:

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

El archivo se lee línea por línea y concatenada, por lo que desaparecieron de la nueva línea.

Yo no miro el archivo original en el Bloc de notas o algo porque no sabía dónde mirar en mi teléfono, y mi logscreen utilizado el código que elimina :-(de la nueva línea

Así la sencilla soultion fue a poner de nuevo mientras se lee:

while (readString != null) { 
       datax.append(readString); 
       datax.append("\n"); 
       readString = buffreader.readLine(); 
      } 
Cuestiones relacionadas