Olá pessoal!
Tenho alguns arquivos que possuem o caracter 00(null) em diversos pontos, e quando ele aparecer preciso substituí-lo por um espaço. Não estou conseguindo identificar este caracter quando leio as linhas do arquivo…
Tentei algo como: (texto é um ArrayList)
byte[] zeroHexa = {0x00};
String zeroHexaStr = new String(zeroHexa);
for(int i = 0; i < 15; i++){
if(texto.get(i).contains(zeroHexaStr)){
System.out.println("Encontrado o zeroHexa na " + (i + 1) + "linha"
}
}
O que eu poderia fazer como alternativa?! Algum esquema com expressão regular? Transformar a String em ByteArray?!
Tenho a impressão de que uma vez que o método readLine() do BufferedReader (o qual estou usando para ler do arquivo) retorna sempre uma String, essa String é quebrada quando o 0x00 é encontrado, como se fosse um \n, por isso não consigo achar depois…
Se for isso mesmo, como abrir o arquivo de maneira binária, caçar os 0x00 de maneira eficiente (os arquivos podem ser bem grandes) e substitui-los!?
Se desse pra fazer com String mesmo seria melhor, pois eu nào precisaria criar uma cópia do arquivo com os 0x00 substituídos, pois essas linhas eu mando direto pra impressora, não interessa o que tem no arquivo, só tenho que fazer a troca pra mandar pra impressora…
Muito obrigado a todos! Abraço!
Valeu!