Pessoal,
Eu tenho um programa que le 5 arquivos TXT e salva em outro arquivo TXT vazio as informações que preciso.
Para que seja salva a minha saida, utilizo o seguinte comando:
FileWriter bw = new FileWriter("C:/LOG/out.txt",true);
O parâmetro TRUE justamente serve para ele ir acumulando no TXT vazio as informações que preciso dos 5 arquivos TXT.
Porém, antes de gravar os dados no TXT vazio, eu salvo as informações em uma LIST e faço a ordenação por um campo específico que preciso, mas o que acontece e que o meu arquivo e ordenado pelo campo que preciso mas ele não ordena todas as informações de uma vez, ele ordena cada trecho que foi acumulando no TXT vazio.
Segue o meu código:
List<Arquivo> col = new ArrayList<Arquivo>();
while((linha = buff.readLine())!= null){
String [] dadosArq = linha.split(" "); // SEPARA O ARQUIVO EM COLUNAS
// CAPTURA APENAS AS INFORMACOES DOS ERROS
if(linha.contains("ABENDED") || linha.contains("FAILED") || linha.contains("NOT CATLGD 2") || linha.contains("UNEXPLA")){
// FILTRA APENAS ODATE ESPECIFICADO
if(dadosArq[4].equals("221011")){
//INSTANCIA DA CLASSE ARQUIVO
Arquivo dados = new Arquivo();
// SETANDO AS INFORMACOES NAS VARIAVEIS
dados.setSigla_Sistema(dadosArq[13].substring(0,2)); //SISTEMA
dados.setData_Processamento(dadosArq[2]); //DATA DE PROCESSAMENTO
dados.setHr_Inicial(dadosArq[3]); //HORA
dados.setOdate_Processamento(dadosArq[4]); //ODATE_PROCESSAMENTO
dados.setNome_Job(dadosArq[13].substring(0,8)); //NOME_JOB
dados.setNum_ID_Job(dadosArq[13].split("/")[1]); //NUM_JOB_ID
dados.setUID(dadosArq[14].substring(4,9)); //UID
// OCORRENCIAS
if (linha.contains("UNEXPLAINED")){
dados.setOcorrencias(dadosArq[16] + " " + dadosArq[18]);
} else if (linha.contains("NOT CATLGD 2")){
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[16] + " " + dadosArq[17] + " " + dadosArq[18] + " " + dadosArq[19]);
} else if (linha.contains("FAILED")){
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[16] + " " + dadosArq[17]);
} else if (linha.contains("ABENDED")){
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[17]);
}
//ADICIONA DADOS NA LIST
col.add(dados);
}
}
}
fis.close();
stream.close();
buff.close();
// METODO PARA ORDENAR.
OrdenaPorID or = new OrdenaPorID();
Collections.sort(col, or);
// IMPRESSAO NO ARQUIVO
FileWriter bw = new FileWriter("C:/LOG/out.txt",true);
PrintWriter bw1 = new PrintWriter(bw);
for(Arquivo inf : col){
bw1.println(inf);
}
bw.close();
bw1.close();
O que posso fazer para que seja ordenado o meu arquivo inteiro de uma vez e não apenas os trechos acumulados ?
Espero que tenha conseguido explicar a minha dúvida.
Obrigado.