Chương trình dưới đây in từng ký tự được viết trên chuẩn, nhưng chỉ sau khi dòng mới được viết (ít nhất là trên hệ thống của tôi!).Tại sao chúng ta không thể đọc một ký tự cùng một lúc từ System.in?
public class Test {
public static void main(String[] args) throws java.io.IOException {
int c;
while ((c = System.in.read()) != -1)
System.out.print((char) c);
}
}
Điều này ngăn mọi người viết nội dung như "Nhấn phím bất kỳ để tiếp tục" và buộc thứ gì đó như "Nhấn enter để tiếp tục".
- Lý do cơ bản cho việc này là gì?
- Đây có phải là hạn chế của Java không?
- Hành vi này có phụ thuộc vào hệ thống (tôi đang sử dụng Ubuntu) không? Làm thế nào nó hoạt động trên máy Mac? Các cửa sổ?
- Có phụ thuộc vào thiết bị đầu cuối cụ thể mà tôi chạy ứng dụng không? (Đối với tôi nó hoạt động như thế này trong Eclipse và trong gnome-terminal)
- Có cách giải quyết khác không?
xem câu trả lời của tôi trong http://stackoverflow.com/questions/1864076/equivalent-function-to-cs-getch-in-java/10118990#10118990 –