Olá a todos.
Tenho uma situação onde recebo um os mais buffers de até 16000 bytes e vou gravando um arquivo tipo texto. Estes dados vem com quebra de linha apenas com “\n”, mas como o usuário vai abrir o arquivo no Windows eu preciso incluir o “\r” para ficar com cr+lf.
Gostaria de sugestões de algoritmos que fossem mais eficientes e não degradassem a performance deste processo.
Para um primeiro teste comecei utilizando o código abaixo, mas ele trata e grava um char por vez:
PrintWriter pw = new PrintWriter(fo, "ISO-8859-1");
ByteArrayInputStream ba=new ByteArrayInputStream(b);
BufferedReader br= new BufferedReader(new InputStreamReader(ba));
while ((i=br.read()) != -1) {
if ( last != '\r' && i == '\n' ) pw.append('\r');
pw.append((char) i);
last=i;
}
b ==> byte array de 16k
pw ==> outputstream de gravação