• Domingo 22 de Diciembre de 2024, 09:35

Autor Tema:  Problema Al Escribir En Fichero Txt  (Leído 1116 veces)

pedrojo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Problema Al Escribir En Fichero Txt
« en: Miércoles 18 de Julio de 2007, 13:47 »
0
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!

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Problema Al Escribir En Fichero Txt
« Respuesta #1 en: Miércoles 18 de Julio de 2007, 17:13 »
0
cuando estes creando el flujo al fichero, debes especificarle un parametro
booleano q indique si queres q sobre-escriba lo q existe en el archivo o q
simplemente añada otra linea (como es tu caso), asi:

fw = new FileWriter(file,true);

//true, indica.... añade
//false, indica... sobre-escribe

Salu2 !!!

pedrojo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problema Al Escribir En Fichero Txt
« Respuesta #2 en: Miércoles 18 de Julio de 2007, 18:26 »
0
Muchas gracias jpaler, la verdad es que ese parámetro no sabía que existia, pero una vez resuelto eso me sale un problemilla ¿verdad que una vez "abierto" el fichero solo se puede hacer un WRITE? Lo digo porque en mi caso he puesto:

String lineaPrueba = new String("primer ejemplo "+numero);
String lineaPrueba2 = new String("ejemplo linea "+numero);

archivoWriter.escribeLinea(lineaPrueba);
archivoWriter.escribeLinea(lineaPrueba2);

En este caso solo me deja escribir una línea (la primera), ¿hay alguna manera de poder escribir más veces o tengo que ir abriendo y cerrando el archivo cada vez?
Otra consulta que te quería hacer es como se puede hacer el salto de línea ¿lo sabes?

Muchas gracias de nuevo y Saludos!