Nicolas,
Se eu fizer a saida assim:
PrintWriter bw = new PrintWriter(new File("out.txt"));
for(Colunas_Arquivo dados: col){
bw.println(dados.toString());
}
Ele funciona, porém a criação do arquivo ficou em loop e gerou um arquivo monstruoso tudo com valor NULL.
Se eu colocar da maneira que você disse:
PrintWriter bw = new PrintWriter(new File("out.txt"));
for(Colunas_Arquivo col: dados){
bw.println(col.toString());
}
Ele dá erro, pois diz que a variável col esta duplicada e não permite fazer assim…
No meu método toString eu fiz desta maneira:
@Override
public String toString() {
return Sigla_Sistema + " " + Nome_Job + " " + Num_ID_Job + " " + Hr_Inicial + " " + Ocorrencias + " " + Odate_Processamento + " "
+ Data_Processamento;
}
Isso tá certo ??
[quote=brunosardao]Nicolas,
Se eu fizer a saida assim:
PrintWriter bw = new PrintWriter(new File("out.txt"));
for(Colunas_Arquivo dados: col){
bw.println(dados.toString());
}
Ele funciona, porém a criação do arquivo ficou em loop e gerou um arquivo monstruoso tudo com valor NULL.
Se eu colocar da maneira que você disse:
PrintWriter bw = new PrintWriter(new File("out.txt"));
for(Colunas_Arquivo col: dados){
bw.println(col.toString());
}
Ele dá erro, pois diz que a variável col esta duplicada e não permite fazer assim…
[/quote]
Bom, deixa do seu jeito então, já que eu não sei quais as variáveis que você tá usando no código.
Tá, ele tá printando NULL… A variável col do seu foreach é a coleção, certo? Você viu se ela tá preenchida com valores?
Sim, e a col.
Imprimi ela na tela e realmente tá voltando NULL…
As posições devem estar foras de ordem…vou rever aqui rapidamente e já posto para você saber…
Nicolas,
Existe algum outro problema que pode estar afetando a não inclusão de dados na list ? pois só tá voltando valor NULL…
Minhas classes estão assim:
CLASSE ARQUIVO
public class Arquivo {
// Atributos
public String Sigla_Sistema;
public String Nome_Job;
public String Num_ID_Job;
public String Hr_Inicial;
public String Odate_Processamento;
public String Data_Processamento;
public String Ocorrencias;
public String getSigla_Sistema() {
return Sigla_Sistema;
}
public void setSigla_Sistema(String sigla_Sistema) {
Sigla_Sistema = sigla_Sistema;
}
public String getNome_Job() {
return Nome_Job;
}
public void setNome_Job(String nome_Job) {
Nome_Job = nome_Job;
}
public String getNum_ID_Job() {
return Num_ID_Job;
}
public void setNum_ID_Job(String num_ID_Job) {
Num_ID_Job = num_ID_Job;
}
public String getHr_Inicial() {
return Hr_Inicial;
}
public void setHr_Inicial(String hr_Inicial) {
Hr_Inicial = hr_Inicial;
}
public String getOdate_Processamento() {
return Odate_Processamento;
}
public void setOdate_Processamento(String odate_Processamento) {
Odate_Processamento = odate_Processamento;
}
public String getData_Processamento() {
return Data_Processamento;
}
public void setData_Processamento(String data_Processamento) {
Data_Processamento = data_Processamento;
}
public String getOcorrencias() {
return Ocorrencias;
}
public void setOcorrencias(String ocorrencias) {
Ocorrencias = ocorrencias;
}
@Override
public String toString() {
return Sigla_Sistema + " " + Nome_Job + " " + Num_ID_Job + " " + Hr_Inicial + " " + Ocorrencias + " " + Odate_Processamento + " "
+ Data_Processamento;
}
MEU CODIGO
public String
caminho = "C:/LOG/HG/";
public void ordenarArquivo(){
try{
// PROCESSO DE LEITURA DAS LOGs
File [] arquivos;
File dir = new File(caminho);
arquivos = dir.listFiles();
for (int i = 0; i < arquivos.length; i++){
// LEITURA DOS ARQUIVOS.
FileInputStream fis = new FileInputStream(arquivos[i]);
InputStreamReader stream = new InputStreamReader(fis);
BufferedReader buff = new BufferedReader(stream);
String linha = null;
List<Arquivo> col = new ArrayList<Arquivo>();
while((linha = buff.readLine())!= null) {
String lineArq = buff.readLine(); // LE O ARQUIVO LINHA A LINHA
String [] dadosArq = lineArq.split(" "); // SEPARA O ARQUIVO EM COLUNAS
Arquivo dados = new Arquivo();
Boolean podeProcessar = false;
// System.out.println(retornaListaNumerada(dadosArq));
if(dadosArq.length == 19){
for (String dado : dadosArq) {
if(dado.toUpperCase().contains("ABENDED") || dado.toUpperCase().contains("FAILED") ||
dado.toUpperCase().contains("UNEXPLA") || dado.toUpperCase().contains("NOT CATLGD"))
podeProcessar = true;
}
if (podeProcessar) {
if (dadosArq[13].length() == 8 && dadosArq[4].equals("020811")) {
dados.setSigla_Sistema(dadosArq[13].substring(0,2));
dados.setNome_Job(dadosArq[13].substring(0,8));
dados.setNum_ID_Job(dadosArq[13].split("/")[1]);
dados.setHr_Inicial(dadosArq[3]);
dados.setOdate_Processamento(dadosArq[4]);
dados.setData_Processamento(dadosArq[2]);
for (String dado : dadosArq) {
if(dado.toUpperCase().contains("ABENDED")) {
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[16] + " " + dadosArq[17]);
}
else if (dado.toUpperCase().contains("FAILED")) {
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[16] + " " + dadosArq[17]);
}
else if (dado.toUpperCase().contains("UNEXPLA")) {
dados.setOcorrencias(dadosArq[16] + " " + dadosArq[18]);
}
else if (dado.toUpperCase().contains("NOT CATLGD 2")) {
dados.setOcorrencias(dadosArq[15] + " " + dadosArq[16] + " " + dadosArq[17] + " " + dadosArq[18] + " " + dadosArq[19]);
}
}
}
}
}
// ADICIONA NA LIST OS DADOS
col.add(dados);
}//WHILE
System.out.println(col.toString());
}//FOR
// PrintWriter bw = new PrintWriter(new File("out.txt"));
// for(Arquivo dados: col){
// bw.println(dados.toString());
}catch(FileNotFoundException x){
x.printStackTrace();
}catch(IOException y){
y.printStackTrace();
}
}
Conferi novamente as posições dos dados e estão todas realmente nas posições que coloquei.
vlw…