BufferedReader

5 respostas
N

Olá gente,

Estou tendo o seguinte problema: quando uso o metodo readLine() da
objeto java.io.BufferedReader ele tira o primeiro caracter da linha, o que até a gora considero um BUG na classe, por exemplo tenho a linha em um arquivo:
ESSA É UMA LINHA DE TESTE
O método lê assim:
SSA É UMA LINHA DE TESTE

Será que alguém já passou por isso e sabe um solução ou uma alternativa?

Muito obrigado pela ajuda desde já.

5 Respostas

_fs

Pode postar o trecho de código que lê o arquivo?

N

Bom esse é o código.
Mas para explicar melhor o código, o que ele faz é copiar um arquivo para outro.
Quando abrimos o arquivo resultante dessa copia ele está sem a primiera letra de cada linha como falei.

try{

   BufferedReader br = new BufferedReader(new FileReader(arq));
   BufferedWriter bw = new BufferedWriter(new FileWriter(arq+".b"));
		
    while(br.read() != -1)
    {
		
      	linha = br.readLine();
        bw.write(linha);
        bw.newLine();				
    }
}
catch(IOExceptio e)
{
       System.out.println("Algum problema com o arquivo.");
}
bw.flush();
...
velo

Você deve estar invocando algum read qq coisa antes de rodar o teu readLine().

VELO

T

O método padrão pra ler linha por linha um BufferedReader é:

while ((linha = br.readLine()) != null) {
    bw.write (linha);
    bw.newLine();
}

Não use “read” porque ele lê um byte, e é isso que está fazendo essa coisa no seu código.

N

É realmente agora que me toquei… Na verdade então tinha implementado errado!

Gente muito obrigado pelas respostas rápidas e certeiras.

Criado 30 de março de 2006
Ultima resposta 30 de mar. de 2006
Respostas 5
Participantes 4