SoloCodigo

Programación General => Java => Mensaje iniciado por: arielb en Lunes 26 de Febrero de 2007, 15:03

Título: Insercion
Publicado por: arielb en Lunes 26 de Febrero de 2007, 15:03
Que tal amigos, bueno estoy haciendo una migracion de unos datos que se encuentran en un archivo de texto a sybase. Solo quería que observaran el código que estoy implementando en la lectura, y me sugieran por favor si se puede agilizar esa lectura, para crear la cadena.

Código: Text
  1. public void LeerArchivo(String pAr){
  2.        
  3.      int c = 0,vI = 1;
  4.      String vCadena = "";
  5.      boolean vGuia = false;
  6.        
  7.      try{
  8.         File oArch = new File(pAr);
  9.         BufferedReader oEnt= new BufferedReader(new FileReader(oArch));
  10.         Procesos oSql = new Procesos();
  11.         if (oSql.coneccionJTDS()){
  12.        
  13.         char vC;
  14.        do{
  15.            vC = (char)c;
  16.            String oLee = String.valueOf( vC );
  17.            System.out.println("Leyendo...");
  18.            if(oLee.equals(",")){
  19.              
  20.              vCadena = vCadena +oLee.trim();
  21.              vI = vI + 1;
  22.            }else{
  23.                if(oLee.equals(";")){
  24.                  
  25.                  oSql.InsertarSybase(vCadena);
  26.                  vCadena = "";
  27.                  vI = 1;
  28.                }else{
  29.                   if(vI == 17){
  30.                  
  31.                     vCadena = vCadena + oLee;
  32.                   }else{
  33.                     vCadena = vCadena + oLee.trim();
  34.                   }
  35.                }
  36.            }
  37.                    
  38.        }while((c=oEnt.read())!=-1);
  39.        
  40.        System.out.print(vCadena);
  41.        oSql.CerrarConexion();
  42.        JOptionPane.showMessageDialog(null,"Proceso Terminado",
  43.                  "Migración",JOptionPane.INFORMATION_MESSAGE);
  44.        }
  45.     }catch(FileNotFoundException v1){
  46.        System.out.println("Archivo no Encontrado: "+v1);
  47.     }catch(IOException v2){
  48.        System.out.println("Error: "+v2);
  49.     }
  50. }
  51.  

gracias de antemano
Título: Re: Insercion
Publicado por: silverfox en Martes 27 de Febrero de 2007, 09:59
Hola...

Para agilizar la construcción de cadenas, usa StringBuffer.


Un saludo.




Silverfox
Título: Re: Insercion
Publicado por: arielb en Miércoles 28 de Febrero de 2007, 22:16
K tal silverfox, Bueno me parecía que había leído ciertas cosas al respecto del uso de StringBuffer().
Y esto es uno que encontré pero no es este el que en un principio leí.
Pero lo dejo para que lo chequen y si desean dan su opinión.

StringBuffer (http://www.lacaraoscura.com/2006/08/09/stringbuffer-mejor-que-usar-cuidado/)

ya que me caso es una migración que vienen hasta más de 200,000 registros. con un total de campos de 54.
Título: Re: Insercion
Publicado por: antony_soluciones en Viernes 9 de Marzo de 2007, 17:34
Hola Juez.

Si quieres agilizar ese código de arriba, no utilizes FileRender ni Bufers, utiliza RandomAccesFile, que es mucho mas rápido para leer y escribir archivos.

Atte

Antony