Foros del Web » Programación para mayores de 30 ;) » Java »

Escribir en fichero

Estas en el tema de Escribir en fichero en el foro de Java en Foros del Web. Hola a todos, necesito ayuda, quiero escribir en un fichero de texto los datos recogidos de un fomulario, como el servlet se va a ejecutar ...
  #1 (permalink)  
Antiguo 22/01/2009, 06:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 29
Antigüedad: 15 años, 9 meses
Puntos: 0
Escribir en fichero

Hola a todos, necesito ayuda, quiero escribir en un fichero de texto los datos recogidos de un fomulario, como el servlet se va a ejecutar muchas veces necesito escribir sobre el mismo fichero y por eso abrirlo en modo append hago lo siguiente dentro del doPost(...):

String nif = request.getParameter("nif");
String nombre = request.getParameter("nombre");
String direccion = request.getParameter("dir");

String sfichero = "fichero.txt";
if (ID == 0){
File fichero = new File(sfichero);
if (fichero.createNewFile()){
BufferedWriter bw = new BufferedWriter(new FileWriter(sfichero));
bw.write("Nif: " + nif + "\n");
bw.write("Nombre: " + nombre + "\n");
bw.write("Direccion: " + direccion+ "\n");
}
}
else{
BufferedWriter bw = new BufferedWriter(new FileWriter(sfichero,true));//append
bw.write("Nif: " + nif + "\n");
bw.write("Nombre: " + nombre + "\n");
bw.write("Direccion: " + direccion+ "\n");
}

No me funciona, no me crea el fichero, ni escribe ni nada de nada, me podrias ayudar y decirme si esta bien o mal, o como se haria. Necestio una salida de este tipo:

----------------------
Nif: 50545784D
Nombre: Jose
Direccion: Camarena

Nif:45123479R
Nombre: Juan
Direccion: Guada

....
-----------------------
  #2 (permalink)  
Antiguo 23/01/2009, 05:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Escribir en fichero

Si no especificas la dirección absoluta del fichero, new File(nombre) te crea el fichero en el directorio desde el que ejecutaste el comando que puso en marcha la JVM. Así que no es que no te esté escribiendo el fichero, es que no sabes donde te lo está escribiendo . Si imprimes fichero.getAbsolutePath() verás donde ha acabado tu fichero.

Mejor usa ServletContext.getRealPath(...) para crear el fichero relativo a donde está tu aplicacion desplegada, o usa algun path conocido que te devuelva alguna propiedad de sistema, como user.dir, temp.dir...

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:27.