Añadir texto a un archivo en Java
Vamos a ver un ejemplo de lo más simple en el manejo de archivos. Consistirá simplemente en añadir un texto a un archivo. Si el archivo no existe se creará.
Ejemplificando
Queremos añadir el texto "Hola" al archivo prueba.txt que está en la unidad C. El código sería el siguiente:
BufferedWriter out = null;
try {
out = new BufferedWriter(new FileWriter("C:/prueba.txt", true));
out.write("Hola");
} catch (IOException e) {
// error processing code
} finally {
if (out != null) {
out.close();
}
}
Fuentes
http://viralpatel.net/blogs/2009/05/20-useful-java-code-snippets-for-java-developers.html
Tweet
24 Comentarios:
Disculpa y como puedo seguir aumentando texto al archivo sin perder el texto anterior, osea que se siga aumentando lo que ingreso gracias..
Hola giovanny.
Éste método:
"FileWriter(String fileName, boolean append)"
lo estamos llamando con el parámetro append igual a true, por tanto cada vez que lo llamemos estaremos añadiendo texto al archivo, sin perder lo que teníamos.
Ejemplo:
out = new BufferedWriter(new FileWriter("D:/prueba.txt", true));
out.write("hola");
out = new BufferedWriter(new FileWriter("D:/prueba.txt", true));
out.write(" que");
out = new BufferedWriter(new FileWriter("D:/prueba.txt", true));
out.write(" tal");
Ésto dará como resultado el texto "Hola que tal", en el archivo D:/prueba.txt .
Saludos.
Hola un saludo...
¿Como puedo hacer que lo que ingrese en el archivo de texto se ingrese en otra linea y no en la misma?
....
out.write("primera linea del archivo");
....
out.write("segunda linea");
y no que aparezca "primera linea del archivo segunda linea"
gracias de antemano
Hola.
Debes llamar al método newLine() . Ejemplo:
out.write("línea 1");
out.newLine();
out.write("línea 2");
De ese modo se introduce un salto de línea.
Saludos y espero que te sirva.
y como hacemos cuando queremos adicionar un enter en cada que insertamos un nueva linia sin usar el newline() dos veces
Hola José roboerto.
Puedes crearte un método así:
void escribirLinea(String texto){
out.write(texto);
out.newLine();
}
De esta forma no tendrás que estar llamando newline constantemente, solamente tendrás que llamar a este método.
Saludos.
hi...........como puedes agregar al inicio pero sin perder el texto ya existente!!!!!!!!!!!!!!!
x ejemplo tengo escrito en el archivo....Hola como estas........y quiero escribir....xxx "\n" Hola como estas
Hola Henry.
En el segundo comentario de este post explico como añadir texto a un archivo sin perder el texto existente.
Saludos.
excelentes explicaciones , y gracias por contestar.
Muchas gracias a tí por comentar.
Saludos.
Luis E. L:
Hermano, y como hago si quiero sacar el resultado de un TextArea y guardarlo a un archivo de texto.. solo cliqueando un boton??
Hola Luis.
Puedes ver un ejemplo de TextArea aquí: http://docs.oracle.com/javase/tutorial/uiswing/components/textarea.html
Una vez que obtengas el texto, puedes añadirlo a un archivo de la siguiente forma: http://felinfo.blogspot.com.es/2009/07/anadir-texto-un-archivo-en-java.html
Espero haberte ayudado. En caso de que tengas dudas, puedes preguntarme.
Saludos cordiales.
Hola oye creo que la pregunta de Henry no es lo del 2 comentario.. no se si me podrías explicar como agregar a un archivo ya existente una cadena de texto pero al principio por ejemplo tienes que tu archivo contiene "Hola soy juan", y lo que quieres es agregar "jesus", como le harías para que quedara "jesus Hola soy juan"
Hola Juan.
Si quieres añadir el texto al principio del archivo yo lo que haría sería lo siguiente:
1. Extraer el texto del archivo y guardarlo en un String.
2. Añadir la cadena deseada al principio del String.
3. Escribir el String resultante en el archivo, poniendo el parámetro append a false -> out = new BufferedWriter(new FileWriter("C:/prueba.txt", false));
Si tienes dudas, puedes preguntarme.
Saludos cordiales.
como escribo texto en determinada posición de la linea
por ejemplo:
hola a todos, quiero escribir algo diferente ---->linea original del archivo
hola a todos,soy Any y quiero escribir algo diferente -----> necesito hacer eso en mi archivo sin perder el resto del contenido
Hola.
Yo creo que la mejor opción es que primero leas el texto del archivo mediante FileReader y BufferedReader (mira este ejemplo: http://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/ ) que guardará el texto en un String. Debes modificar ese String añadiendo el texto que desees y posteriormente vuelvas a escribir el texto ya modificado en el archivo (siguiendo el ejemplo de este post). Espero haberte ayudado.
Saludos.
Hola Felipe, primero gracias por el tutorial. Pero venia buscando lo mismo que te pregunta Henry.
Solo decirte una cosa, es una burrada leer un archivo completo para agregar algo al principio del archivo. Hay otra opcion que es lo que estoy buscando. Si doy con ella espero acordarme de esta pagina.
Buscando informacion creo que la clave la tenemos en la clase RandomAccessFile.
Hola.
Según en qué casos, puede ser más rápido (eficiente) o más lento que BufferedReader. En general se recomienda usar acceso secuencial (como bufferedReader) siempre que sea posible. Aquí se habla de ello: http://stackoverflow.com/questions/10400688/bufferedreader-vs-randomaccessfile-in-java
Saludos.
Muchas gracias acabas de salvar mis practicas!
Me alegro!. Un saludo.
Buenas como puedo añadir un carácter en una posición determinada del archivo.txt, tengo
Nombre: antonio
Direccion: calle 21
telefono: 20000, como puedo hacer para que cuando añada un nombre o direccion se me añada al lado?.
Publicar un comentario