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
Por que não cria uma collection de buffers de 500?
Aí itera sobre a mesma e cada uma gera um arquivo.
[quote=drsmachado]Por que não cria uma collection de buffers de 500?
Aí itera sobre a mesma e cada uma gera um arquivo.[/quote]
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
[code]
//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));
}
}[/code]
[quote=douglaskd][code]
//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));
}
}[/code][/quote]
Valeu douglaskd, vou fazer um teste , Grato JavaX
[quote=JavaX_JavaX]
Valeu douglaskd, vou fazer um teste , Grato JavaX[/quote]
opa não vai dar certo haha…vai começar a repetir os registros apartir do 500…
[code]
//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));
}
}[/code]
cara ficou muito POG meu código tem que reestruturar…vish… (tenta trocar o for do meio por um while…)
[quote=douglaskd][quote=JavaX_JavaX]
Valeu douglaskd, vou fazer um teste , Grato JavaX[/quote]
opa não vai dar certo haha…vai começar a repetir os registros apartir do 500…
[code]
//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));
}
}[/code]
cara ficou muito POG meu código tem que reestruturar…vish… (tenta trocar o for do meio por um while…)[/quote]
douglaskd
Blz valeu mesmo vou tentar