Java - problema al escribir en fichero

 
Vista:

problema al escribir en fichero

Publicado por pedrojo (20 intervenciones) el 18/07/2007 13:18:34
Hola, he escrito un programilla para poder escribir desde una aplicación java una líneas con variables a un fichero de texto. Mi problema es que sé como escribir una línea, pero a la que intento escribir otra a continuación de esta no se me escribe (mi intención es poner este código en una aplicación más compleja y poder escribir datos a continuación de los que ya tengo en el fichero txt, para que os hagais una idea es escribir una especie de diario con todo lo que va sucediendo al ejecutarse la aplicación). Os dejo mi código para que le echeis un vistazo y os pido que me ayudeis por favor que ya me sale humo por la cabeza. Muchas gracias por adelantado.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class EscribirFichero {

private FileWriter fw;
private PrintWriter lew;

public EscribirFichero(File file)
{
try
{
fw = new FileWriter(file);
lew =new PrintWriter(fw);
}catch(IOException error)
{
System.out.println(error.getMessage());
}
}

public void escribeLinea(String linea)
{
//String linea="";
try
{
lew.write(linea);
}finally
{
if(lew !=null){
lew.close();
}
}
/*catch (IOException error)
}
{
System.out.println(error.getMessage());
}*/

}

public void cierraArchivo()
{
try
{
fw.close();
lew.close();
}catch (IOException error)
{
System.out.println(error.getMessage());
}
}

}

*Luego para ejecutarlo desde otra aplicación hago lo siguiente:

File OutputFile = null;
OutputFile = new File(arg[1]);
EscribirFichero archivoWriter= new EscribirFichero(OutputFile);
int numero= 2;
String lineaPrueba = new String("prueba "+numero);
String lineaPrueba2 = new String("otra linea para la prueba "+numero);
archivoWriter.escribeLinea(lineaPrueba);
archivoWriter.escribeLinea(lineaPrueba2);

archivoWriter.cierraArchivo();

Pue lo dicho, muchísimas gracias por adelantado. Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema al escribir en fichero

Publicado por angel (537 intervenciones) el 18/07/2007 13:28:07
Lo que tiens que hacer es cuando kieras abrir el fichero para añadir texto, tienes k crear el flujo de salida asi:
File f = new File("FicheroDatos.dat");
ObjectOutputStream outf = new ObjectOutputStream(new FileOutputStream(f,true)); //Con el true...t permite concatenar datos.

Saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema al escribir en fichero

Publicado por pedrojo (20 intervenciones) el 18/07/2007 14:38:12
Ok, muchas gracias, ¿pero funciona igual si es un .txt? Según esto también funcionaría si por ejemplo escribo más de una línea en un determinado momento, no? Según lo que me pones se tendría que hacer más o menos como lo tengo yo pero unicamente habría que cambiar la manera de abrir el fichero, no? Lo digo por si cambiaría mucho la clase y la manera de escribir el texto. Muchísimas gracias y cuando lo pruebe te digo algo. Gracias y Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema al escribir en fichero

Publicado por pedrojo (20 intervenciones) el 18/07/2007 17:49:48
Pues no me funciona, no me concatena bien y además me salen carácteres raros (me salen estos carácteres ⁳畣湡). Lo siento, pero voy muy perdido, muchas gracias de todos modos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema al escribir en fichero

Publicado por angel (537 intervenciones) el 19/07/2007 07:57:02
Perdona,,,,pero el codigo que t puse era para escribir objetos en ficheros....
T pongo como podrias escribir texto plano..

File f = new File("d:\\textot.txt");
FileOutputStream fout = new FileOutputStream(f);
fout.write("Primera linea\r\n".getBytes());
fout.close();
fout = new FileOutputStream(f,true);
fout.write("Segunda linea".getBytes());
fout.close();

Espero que te ayude, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema al escribir en fichero

Publicado por pedrojo (20 intervenciones) el 19/07/2007 11:34:24
Muchas gracias angel, me has ayudado mucho y finalmente creo que lo he conseguido (es algo diferente al código que me has pasado ya que lo hago con PrintWriter en vez de con FileOutputStream, pero de todas formas en la idea general y de estructuración me has ayudado mucho).Muchas gracias de nuevo y saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar