Pessoal, bom dia!
Estou com o seguinte problema aqui tenho um txt para ler mas tenho que filtrar ele, porem quando, estou lendo o mesmo, eu pego o nome do meu cliente e comparo linha a linha se ele ja existe em minha saida, porem nao esta rolando, ele esta gravando mesmo contendo o nome na saida.
Segue a baixo o codigo do meu programa, Estou tentando comparar com o String.contains(). Desde já obrigado.
meu txt
Data,Cartao,Sexo,Nome,Area,Fone,RG,Email,Aniversario,V.Ingreso,Total
12/11/2010,1-00309,F,jeferson,11,75430154, [email removido], 51278,01/01, 0.00, 182.60
12/11/2010,1-00309,F,jeferson,11,75430154, [email removido], 51278,01/01, 0.00, 170.60
12/11/2010,1-00309,F,11,75430154, [email removido], 51278,01/01, 0.00, 182.60
12/11/2010,1-00309,F,jeferson,11,75430154, [email removido], 51278,01/01, 0.00, 19.60
12/11/2010,1-00309,F,januario,11,75430154, [email removido], 51278,01/01, 0.00, 182.60
12/11/2010,1-00309,F,11,75430154, [email removido], 51278,01/01, 0.00, 182.60
12/11/2010,1-00309,F,jeferson,11,75430154, [email removido], 51278,01/01, 0.00, 15.60
package br.com.asterix;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Fidelidade {
static Logger logger = LoggerFactory.getLogger(Fidelidade.class);
static boolean contem = false;
public static void main(String[] args) throws IOException {
String pathNameIn = "/home/jeferson/Downloads/HJ.1.TXT";
String pathNameOut = "/home/jeferson/Desktop/HJSaida.txt";
File inFile = new File(pathNameIn);
File outFile = new File(pathNameOut);
String linhaSelecionada = null;
String nomeCliente = null;
double filtro = 99.99;
String linha;
String linhaFinal;
int totalFatura;
int tamanhoLinha;
FileReader reader = new FileReader(inFile);
FileWriter writer = new FileWriter(outFile);
BufferedReader leitor = new BufferedReader(reader);
BufferedWriter escritor = new BufferedWriter(writer);
FileReader readerFinal = new FileReader(outFile);
BufferedReader leitorFinal = new BufferedReader(readerFinal);
try {
linha = leArquivoOrigem(filtro, leitor, escritor, leitorFinal);
reader.close();
writer.close();
leitor.close();
escritor.close();
readerFinal.close();
leitorFinal.close();
} catch (IOException e) {
logger.info("deu erro");
logger.info(e.getMessage());
}
}
private static String leArquivoOrigem(double filtro, BufferedReader leitor,
BufferedWriter escritor, BufferedReader leitorFinal)
throws IOException {
String linhaSelecionada;
String nomeCliente;
String linha;
int totalFatura;
int tamanhoLinha;
while ((linha = leitor.readLine()) != null) {
tamanhoLinha = linha.split(",").length;
tamanhoLinha = (tamanhoLinha - 1);
nomeCliente = linha.trim().split(",")[3];
linhaSelecionada = linha.trim().split(",")[tamanhoLinha];
totalFatura = (int) Double.parseDouble(linhaSelecionada.trim());
logger.info("Nome do Cliente " + nomeCliente);
filtraTotalFatura(nomeCliente, filtro, linha, totalFatura,
tamanhoLinha, escritor, leitorFinal);
}
return linha;
}
private static void filtraTotalFatura(String nomeCliente, double filtro,
String linha, int totalFatura, int tamanhoLinha,
BufferedWriter escritor, BufferedReader leitorFinal)
throws IOException {
String linhaFinal;
if (nomeCliente.trim() != null) {
if (nomeCliente.length() > 4) {
if (totalFatura > filtro) {
logger.info("Numero decrementado: "
+ tamanhoLinha);
logger.info("Linha Split "
+ linha.trim().split(",")[tamanhoLinha]);
linhaFinal = leArquivoGravado(nomeCliente,
leitorFinal);
grava(linha, escritor, contem);
}
}
}
}
private static String leArquivoGravado(String nomeCliente,
BufferedReader leitorFinal) throws IOException {
String linhaFinal;
while ((linhaFinal = leitorFinal.readLine()) != null) {
logger.info("Estamos dentro do while agora:::::");
buscaNome(nomeCliente, linhaFinal);
}
return linhaFinal;
}
private static void buscaNome(String nomeCliente, String linhaFinal) {
if (linhaFinal != null) {
if ( linhaFinal.trim().contains(nomeCliente.trim())) {
contem = true;
}
}
}
private static void grava(String linha, BufferedWriter escritor,
boolean contem) throws IOException {
if (!contem) {
escritor.write(linha + "\n");
logger.info("Gravado: " + linha);
}
}
}