Amigos,
estou lendo e escrevendo m arquivo .csv mas tenho que ler uma determinada String que vem no conteudo do arquivo e a partir dela eliminar o resto do arquivo.
como posso fazer isso ?
String file = "C:\\TMP\\repBoletos\\entrada.csv";
StringBuilder bufSaida = new StringBuilder();
try {
BufferedWriter StrW = new BufferedWriter(new FileWriter("C:\\TMP\\repBoletos\\saida.csv"));
BufferedReader br = new BufferedReader(new FileReader(file));
String linha;
while( (linha = br.readLine()) != null ){
bufSaida.append(linha).append("\n");
}
StrW.write(bufSaida.append(linha).append("\n").toString());
StrW.close();
br.close();
Amigo, em geral, os arquivos csv tem um delimitador de campo. Costumo usar “;” ponto e vírgula.
Se o seu arquivo de origem tem isso, você pode fazer um split pelo ; armazenando o resultado em um String[]. Assim, você pode construir uma método para restorna um objeto construindo passando essa String[].
ex:
public Pessoa construirPessoa(String[] linha){
Pessoa pessoaUnit = new Pessoa();
pessoa.setNome(linha[0]);
pessoa.setIdade(linha[0]);
pessoa.setSexo(linha[0]);
return pessoaUnit;
}
Lembrando que existe a necessidade de colocar alguns mecanismos de proteção para receber valores nulos.
O mesmo pode ser utilizada para construir. Fazer o inverso.
1 curtida
Felipescabral,
muito obrigado pela sua resposta, mas eu acabei resolvendo com o código abaixo
identar texto pre-formatado em 4 espaços
while( (linha = br.readLine()) != null ){
bufSaida.append(linha + “; " + dataMovimento).append(”\n");
if(linha.trim() != null){
if(linha.trim().equals("BOLETOS")){
break;
}
}
}
identar texto pre-formatado em 4 espaços
eu identifiquei a String “BOLETOS” no meu loop e fiz um break para não continuar escrevendo o arquivo…