Непонятная зависимость буфера ввода от выходного потока (Java)
import java.util.Scanner;
import java.io.IOException;
public class TestClass2 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int drop;
String str;
do {
drop = System.in.read();
} while(drop != (int)'\n');
//System.out.println();
str = sc.nextLine();
System.out.println(str);
}
}
Вопрос простой. Почему, если раскомментировать строку после цикла, сканер исправно возвращает переменной str данные с консоли? А если оставить строку закомментированной, то переменная получает значение пустой строки?
Уточнение1. Эффект имеет место в IntelliJ Idea Build #IC-221.5591.52, built on May 10, 2022. При использовании Notepad++ и cmd код выполняется ожидаемым образом.
Уточнение2. Апдейт IDE на последнюю версию решил проблему. Возможно, помог бы и простой перезапуск. К сожалению, не проверил. Сразу обновил.