Непонятная мне деталь при считывании данных с консоли

Заместо того чтобы вывести весь текст он пропускает одну букву.Почему?

import java.io.*;


public class Main {


    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            while (br.read() != -1) {
                System.out.println((char)(br.read()));
            }
        }catch (IOException er){
            er.printStackTrace();
        }

    }
}

Ответы (1 шт):

Автор решения: Andrew Bystrov

Данный код пропускает букву потому что вы 2 раза вызывает br.read().

int i;
while ((i = br.read()) != -1) {
    System.out.println((char) i);
}
→ Ссылка