Quebar arquivo Texto ou txt Apartir de uma quantidade gerado

6 respostas
JavaX_JavaX

Boa tarde !!! Galera

Bom, mais uma vez preciso da ajuda de vcs

estou gerando um arquivo texto, de informações que pego de um banco de Dados

porem , eu preciso que quando o contador atingir 500 seja Criado um novo arquivo , exemplo

tenho um banco com 1000 Registro , o Primeiro arquivo tera 500 , e o segundo os 500 restante

segue uma parte do meu codigo que criei até agora

// Começo Cria e Abre arquivo Texto\.Txt Para Escrever *****************
         // FileWriter para gerar arquivo
          FileWriter writer = null; 
           try {
           // writer = new FileWriter(new File(ArqSai.getText()+"."+Util.Padl(Integer.toString(SeqExt),3,"0")),true); // Este Adiciona em um arquivo já existente
            writer = new FileWriter(new File(ArqSai.getText()+"."+Util.Padl(Integer.toString(SeqExt),3,"0"))); // Este Sobrescreve o arquivo existente
           } catch (IOException ex) {
            Logger.getLogger(Boleto.class.getName()).log(Level.SEVERE, null, ex);
           }
        // PrintWriter pra escrever no arquivo (em texto!)   
        //  PrintWriter Fwrite = new PrintWriter(writer,true);                  // Este Adiciona em um arquivo já existente 
          PrintWriter Fwrite = new PrintWriter(writer);                         // Este Sobrescreve o arquivo existente

          Fwrite.println("%!");
          Fwrite.println("XGF");
          Fwrite.println("500 SETBUFSIZE");
          Fwrite.println("(PRINCIPAL.JDT) STARTLM");
        // Final Cria e Abre arquivo Texto\.Txt Para Escrever *****************

          try {
           while(conexao.resultset.next()) {                                    // Eof ou End Of File  Enquando não for final de Arquivo
            
            sequencia++;
            SeqX++;
           
            
            if(SeqX > Quebra ){
             SeqX = 1;
             SeqExt++ ;
               Fwrite.println("%%EOF");
               Fwrite.close();
               try {
               writer.close();
               } catch (IOException ex) {
               Logger.getLogger(Boleto.class.getName()).log(Level.SEVERE, null, ex);
               }
}

caso alguem possa me ajudar

agradeço pela atenção

Att JavaX

6 Respostas

drsmachado

Por que não cria uma collection de buffers de 500?
Aí itera sobre a mesma e cada uma gera um arquivo.

JavaX_JavaX

drsmachado:
Por que não cria uma collection de buffers de 500?
Aí itera sobre a mesma e cada uma gera um arquivo.

drsmachado , valeu sua atenção …

porem , caso vc tenha algum tutorial , ou um exemplo , de como eu posso fazer isso.

sou novo em java e não tenho , ideia de como fazer

grato

Att JavaX

douglaskd
//grave os registros em um arraylist registros...

//aqui você vai ver quantos arquivos vai precisar:

int qtdArquivos = (int) Math.ceil((registros.size()-1)/500); //math.ceil arredonda para cima, então sendo (700 / 500) vai dar 1,4 que fica 2

for(int j=0;j<qtdArquivos.lenght;j++)

//cria o arquivo nesta linha
//abreArquivo

for(int i=0;i<500;i++){

//salva registros
gravarregistro(registros.get(i));

}

}
JavaX_JavaX
douglaskd:
//grave os registros em um arraylist registros...

//aqui você vai ver quantos arquivos vai precisar:

int qtdArquivos = (int) Math.ceil((registros.size()-1)/500); //math.ceil arredonda para cima, então sendo (700 / 500) vai dar 1,4 que fica 2

for(int j=0;j<qtdArquivos.lenght;j++)

//cria o arquivo nesta linha
//abreArquivo

for(int i=0;i<500;i++){

//salva registros
gravarregistro(registros.get(i));

}

}

Valeu douglaskd, vou fazer um teste , Grato JavaX

douglaskd
JavaX_JavaX:

Valeu douglaskd, vou fazer um teste , Grato JavaX

opa não vai dar certo haha...vai começar a repetir os registros apartir do 500...

//grave os registros em um arraylist registros...

//aqui você vai ver quantos arquivos vai precisar:

int qtdArquivos = (int) Math.ceil((registros.size()-1)/500); //math.ceil arredonda para cima, então sendo (700 / 500) vai dar 1,4 que fica 2

for(int j=0;j<qtdArquivos;j++)

//cria o arquivo nesta linha
//abreArquivo

for(int i=0;((i<500)&&(k<registros.size()-1);i++){ //POG Master

k++;

//salva registros
gravarregistro(registros.get(k));

}

}

cara ficou muito POG meu código tem que reestruturar...vish... (tenta trocar o for do meio por um while....)

JavaX_JavaX
douglaskd:
JavaX_JavaX:

Valeu douglaskd, vou fazer um teste , Grato JavaX

opa não vai dar certo haha...vai começar a repetir os registros apartir do 500...

//grave os registros em um arraylist registros...

//aqui você vai ver quantos arquivos vai precisar:

int qtdArquivos = (int) Math.ceil((registros.size()-1)/500); //math.ceil arredonda para cima, então sendo (700 / 500) vai dar 1,4 que fica 2

for(int j=0;j<qtdArquivos;j++)

//cria o arquivo nesta linha
//abreArquivo

for(int i=0;((i<500)&&(k<registros.size()-1);i++){ //POG Master

k++;

//salva registros
gravarregistro(registros.get(k));

}

}

cara ficou muito POG meu código tem que reestruturar...vish... (tenta trocar o for do meio por um while....)

douglaskd

Blz valeu mesmo vou tentar

Criado 29 de fevereiro de 2012
Ultima resposta 1 de mar. de 2012
Respostas 6
Participantes 3