readLine() comeu o primeiro caracter

olá

parece até engraçado, mas o readLine() comeu mesmo, testem ai

import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.IOException;

public class criaArquivo {
	public static void main(String[] args){
		try {
			BufferedWriter arquivo = new BufferedWriter(new FileWriter("novo.txt"));
			arquivo.write("teste da silva e silva");
			arquivo.newLine();
			arquivo.write("teste da linha2");
			arquivo.close();
			System.out.println(arquivo);
			System.out.println();
			System.out.println();
			System.out.println();
			System.out.println();
			BufferedReader ler = new BufferedReader(new FileReader("novo.txt")); 
			do{
				System.out.println(" " + ler.readLine());
			}while(ler.read() > 0);
			ler.close();
		} 
		catch (IOException e) {
			e.printStackTrace();
		}
	}
}

abraço

PS: editado devido a analfabetisse. :wink:

No do while você está usando o método read() que retorna o próximo caracter. Então ele retornou o primeiro da linha e o readLine() pegou o resto a partir dali. Faça assim:

            BufferedReader ler = new BufferedReader(new FileReader("novo.txt"));
            
            String line = "";
            while( (line = ler.readLine()) != null){  
                System.out.println(" " + line);  
            }
            ler.close();  

Exatamente isso Guilherme…

Da uma do quando encontramos uma questao interessante, sabemos a resposta, e alguem ja foi mais rapido que voce. O bom eh que muitas vezes alguem aj ate escreveu uma resposta mais educada e completa, como foi o caso aqui do Guilherme. Isso que faz do GUJ um lugar legal. parabens!

Realmente, o GUJ é um lugar muito legal, pela cooperação entre os desenvolvedores JAVA, e como eu estava estudando para a certificação e estava justamente estudando o Capitulo 6, referente a esse tópico, achei interessante e resolvi dar uma olhada… hehehe.
Geralmente antes de procurar algo no google, faço uma procura aqui no site e sempre encontro algo parecido com meus problemas… e em muitas vezes encontro as respostas.
Parabéns a todos…

entendi

quando executo o comando

linha = ler.readLine();

o conteudo da primeira linha já foi parar no valor da variavel linha.

interessante…

@Paulo Silveira: é mesmo o GUJ é muito bom… mesmo a pergunta sendo fácil para muitos, o pessoal ainda responde sem dar patada! pelo menos num tomei nenhuma :wink:

Outra coisa bacana é q qnd o pessoal quer codigo pronto, todo mundo xinga ele rsrsrsr
aki vagal nao se cria nao. mais se a pessoa pelo menos tentar a ponto de ter duvidas ja recebe todo o apoio possivel

é mesmo!!!

código pronto num rola, tem que dar o caminho das pedras.

abraço