utilizar sobreescribir example ejemplo como clase java io filewriter

example - filewriter java sobreescribir



Java: FileWriter: crea una nueva lĂ­nea (8)

He hecho un pequeño escritor de archivos:

try { FileWriter writer = new FileWriter(new File("file.txt"), false); try { String sizeX = jTextField1.getText(); String sizeY = jTextField2.getText(); writer.write(sizeX); writer.write(sizeY); writer.flush(); writer.close(); } catch (NumberFormatException e) { } } catch (IOException ex) { }

Ahora quiero hacer una nueva línea, al igual que puedes hacerlo con "/ n" normalmente, pero parece que no funciona ...

¿Alguien sabe cómo hacer una línea tan nueva?

¡Gracias por adelantado! :)


Aquí "/ n" también funciona bien. Pero el problema aquí radica en el editor de texto (probablemente bloc de notas). Intenta ver la salida con Wordpad.


Desde el 1.8, pensé que esta podría ser una solución adicional que vale la pena agregar a las respuestas:

Path java.nio.file.Files.write (Ruta de acceso, líneas Iterables, opciones de OpenOption ...) arroja IOException

StringBuilder sb = new StringBuilder(); sb.append(jTextField1.getText()); sb.append(jTextField2.getText()); sb.append(System.lineSeparator()); Files.write(Paths.get("file.txt"), sb.toString().getBytes());

Si se agrega al mismo archivo, tal vez use un indicador Append con Files.write ()

Files.write(Paths.get("file.txt"), sb.toString().getBytes(), StandardOpenOption.APPEND);


Intente empaquetar su FileWriter en un BufferedWriter :

BufferedWriter bw = new BufferedWriter(writer); bw.newLine();

Javadocs para BufferedWriter here .


Me gustaría abordar el problema de esta manera:

BufferedWriter output; output = new BufferedWriter(new FileWriter("file.txt", true)); String sizeX = jTextField1.getText(); String sizeY = jTextField2.getText(); output.append(sizeX); output.append(sizeY); output.newLine(); output.close();

La verdad en el constructor FileWriter permite agregar.
El método newLine () es proporcionado por BufferedWriter
¿Podría estar bien como solución?


Pruebe System.getProperty( "line.separator" )

writer.write(System.getProperty( "line.separator" ));


Si desea obtener nuevos caracteres de línea utilizados en el sistema operativo actual, como /r/n para Windows, puede obtenerlos mediante

  • System.getProperty("line.separator");
  • desde Java7 System.lineSeparator()
  • o como lo mencionó Stewart, los genera a través de String.format("%n");

También puede usar PrintStream y su método println , que agregará el separador de líneas dependiente del sistema operativo al final de la cadena automáticamente.

PrintStream fileStream = new PrintStream(new File("file.txt")); fileStream.println("your data"); // ^^^^^^^ will add OS line separator after data

(BTW System.out también es una instancia de PrintStream).


Si quiere decir usar el mismo código pero agregue una nueva línea para que cuando agregue algo al archivo esté en una nueva línea. Simplemente puede usar BufferedWriter''s newLine() .
Aquí también he mejorado tu código: NumberFormatException no era necesario ya que no se estaba emitiendo nada a un tipo de datos numérico, también se guardaban las variables de guardado para usar una vez.

try { BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt")); writer.write(jTextField1.getText()); writer.write(jTextField2.getText()); writer.newLine(); writer.flush(); writer.close(); } catch (IOException ex) { System.out.println("File could not be created"); }


Tratar:

String.format("%n");

Vea esta pregunta para más detalles.