Olá, estou precisando exportar registros do banco e tenho que formatar um txt, apenas 3 registros deram problemas, fui ver o que era e descobri que cadastraram a descrição com ENTER e ele quebra a formatação do txt.
Exemplo bom:
“Estou com esta dúvida”
Exemplo ruim:
“Estou com
esta
duvida”
Não sei ainda como identificar o enter. Como faço para remover de um texto caracteres não visíveis como o ENTER por exemplo, e trocá-lo por espaço em branco ?
Opa Lucas, a solução que tinha criado tinha falhas, ç ã À eram “comidas” na hora de gerar o txt.
E cara esqueci de dizer mas estou com java 1.3
replace all ? o que é isso hehe, infelizmente o replace do 1.3 só aceita char, aí eu vou trocar o \r e \n por espaço em branco ? Assim ficaria com 2 espaços no arquivo txt.
Mas aproveitei a idéia e troquei o intervalo de 32 à 126 por \r e \n, agora está montando o txt corretamente, lasca que eram só 3 registros no meio de 140000.
Ah, sim.
Então é mais fácil ainda.
Se vc lê o arquivo em bytes vc pode usar este construtor
byte buffer[];
in.read( buffer );
System.out.println( new String(buffer, "UTF-8").trim() );
Caso não funcione, troque o “UTF-8” por “ISO-8859-1”.
Este construtor da classe String é desde o java 1.1.
Não é uma boa solução trocar um intervalo de caracteres.
Obs: Se vc usar uma Classe Reader vc irá lê o arquivo em array de char, mas se vc trocar por BufferedInputStream vc irá ler um array de bytes, então tem como usar a solução descrita acima. O que ocorre, é quando vc trata como ‘char’ o dado é interpretado, e dependendo como o arquivo foi salvo a interpretação falha, por isso caracteres especiais estão vindo corrompidos.