• Jueves 14 de Noviembre de 2024, 20:58

Autor Tema:  Insercion  (Leído 1517 veces)

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Insercion
« en: Lunes 26 de Febrero de 2007, 15:03 »
0
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
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Insercion
« Respuesta #1 en: Martes 27 de Febrero de 2007, 09:59 »
0
Hola...

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


Un saludo.




Silverfox

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Insercion
« Respuesta #2 en: Miércoles 28 de Febrero de 2007, 22:16 »
0
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

ya que me caso es una migración que vienen hasta más de 200,000 registros. con un total de campos de 54.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Insercion
« Respuesta #3 en: Viernes 9 de Marzo de 2007, 17:34 »
0
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
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]