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

Problemas al escribir

Estas en el tema de Problemas al escribir en el foro de Java en Foros del Web. Que tal foro! ojalá puedan ayudarme con el siguiente problema y eso es que construi una función que cada cierto tiempo extrae los datos de ...
  #1 (permalink)  
Antiguo 28/01/2009, 16:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Problemas al escribir

Que tal foro!

ojalá puedan ayudarme con el siguiente problema y eso es que construi una función que cada cierto tiempo extrae los datos de un archivo y los almacena en memoria temporalmente antes de que se escriban en otro, el problema es el siguiente, mi arreglo b[i] contiene las cadenas (líneas de texto) que han de escribirse en el archivo nuevo, cuando se tradta de una sola linea la que se tiene que escribir no hay problema, el problema viene cuando hay más de una linea que escribir, para ser más claro las líneas que abajo se muestran son las que habría en el arreglo (no siempre son las mismas)

Código HTML:
MTL00160;040;00001;1;9999;166;1660;14:53:50;28/01/2009
MTL00160;040;01203;1;9999;272;2720;14:53:50;28/01/2009
MTL00180;040;04721;1;9999;678;6779;14:53:50;28/01/2009
MTL00180;040;00128;1;9999;1176;11759;14:53:50;28/01/2009
MTL00190;040;01231;1;9999;272;2720;14:53:50;28/01/2009
MTL00190;040;00345;1;9999;166;1660;14:53:50;28/01/2009
MTL00192;040;00024;1;9999;166;1660;14:53:50;28/01/2009
MTL00192;040;00055;1;9999;272;2720;14:53:50;28/01/2009
MTL00193;040;00907;1;9999;284;2840;14:53:50;28/01/2009
MTL00194;040;00894;1;9999;118;1180;14:53:50;28/01/2009
MTL00195;040;00734;9999;106;1060;14:53:50;28/01/2009
MTL00195;040;00569;1;9999;106;1060;14:53:50;28/01/2009
MTL00195;040;09578;1;9999;272;2720;14:53:50;28/01/2009
MTL00196;040;02874;1;9999;770;7699;14:53:50;28/01/2009
se supone que esto mismo es lo que deberia guardar en un archivo txt, sin embargo solo graba una sola linea en el nuevo archivo de esta forma

Código HTML:
MTL00160;040;00001;1;9999;272;2720;15:12:29;22/01/2009
MTL00180;040;00001;1;9999;1176;11759;15:12:29;22/01/2009
MTL00190;040;00001;1;9999;166;1660;15:12:29;22/01/2009
MTL00192;040;00001;1;9999;272;2720;15:12:29;22/01/2009
MTL00193;040;00001;1;9999;284;2840;15:12:29;22/01/2009
MTL00194;040;00001;1;9999;118;1180;15:12:29;22/01/2009
MTL00195;040;00001;1;9999;272;2720;15:12:29;22/01/2009
MTL00196;040;00001;1;9999;770;7699;15:12:29;22/01/2009
la verdad es que no entiendo porque...

el código que uso es este, alguién tendrá alguna sugerencia o comentario de porque no se guardan todas las líneas.

Código:
   public static String logbuilder(String [] inticket, int index, String Nombre) throws IOException
   {
      // Declaración del FileWriter para escribir en el archivo destino
      BufferedWriter fd_out = null;
      String cad;
      String[] b = new String[2250];
      cad = "/home/oscar/Desktop/bizerba/sxcash/logregs.txt";
      File arch = new File(cad);
                  
      //Escritura de archivos 
                      
      if (arch.exists())
      {
         for(int i = 1; i<index; i++)
         { 
            fd_out = new BufferedWriter (new FileWriter(cad, true));
            b[i] = logbuilder(inticket[i].trim()) + "\r\n";
            fd_out.write(b[i]);
            System.out.println(b[i]);
         }
      }
      else
      {
         for(int i = 1; i<index; i++)
         {
            fd_out = new BufferedWriter (new FileWriter(cad));
            b[i] = logbuilder(inticket[i].trim()) + "\r\n";
            fd_out.write(b[i]);
            System.out.println(b[i]);
         }
      }
      fd_out.close();
      return "0";
   }
Gracias.
  #2 (permalink)  
Antiguo 28/01/2009, 19:17
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problemas al escribir

fijate si te sirve algo asi.

public void test() throws IOException{
readFile();
}
public String readFile()
throws IOException {
// Declaración del FileWriter para escribir en el archivo destino
String result;
String fileName = "archivo.txt";

File file = new File(fileName);
result = getContents(file);
System.out.println(result);
return result;
}

static public String getContents(File aFile) {
//...checks on aFile are elided
StringBuilder contents = new StringBuilder();

try {
//use buffering, reading one line at a time
//FileReader always assumes default encoding is OK!
BufferedReader input = new BufferedReader(new FileReader(aFile));

try {
String line = null; //not declared within while loop
/*
* readLine is a bit quirky :
* it returns the content of a line MINUS the newline.
* it returns null only for the END of the stream.
* it returns an empty String if two newlines appear in a row.
*/

while ((line = input.readLine()) != null) {
contents.append(line);
contents.append(System.getProperty("line.separator "));
}
} finally {
input.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}

return contents.toString();
}
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 21:45.