Có thể sử dụng NIO với System.in không?Java: sử dụng NIO với System.in
Tôi muốn bằng cách nào đó coi 'stdin' là kênh có thể chọn. Có ai tìm thấy một cách để làm điều này?
Có thể sử dụng NIO với System.in không?Java: sử dụng NIO với System.in
Tôi muốn bằng cách nào đó coi 'stdin' là kênh có thể chọn. Có ai tìm thấy một cách để làm điều này?
trùng lặp:
How to get SelectableChannel from an InputStream?
hmmm ... trên nghĩ thứ hai, cho stdin có thể có một giải pháp. Tôi tìm thấy thông tin này:
http://www.javafaq.nu/java-example-code-346.html
và đặc biệt:
SystemInPipe.java (lớp mà gói gọn stdin như một kênh lựa chọn)
Tôi không biết về một SelectableChannel
, nhưng bạn có thể chuyển đổi an InputStream
đến số ReadableByteChannel
với
using java.nio.channels.Channels;
...
ReadableByteChannel in = Channels.newChannel(System.in);
Bạn c create tạo một Pipe
và một chuỗi tùy chỉnh để đọc từ đầu vào tiêu chuẩn và ghi vào đường ống.
Khi bạn có Pipe
, bạn có thể nhận kênh đầu vào.
Tôi đánh giá cao những gì anh chàng đó đang cố gắng làm trong SystemInPipe, nhưng nó vẫn không tốt hơn nhiều so với việc tạo ra một chuỗi daemon để thăm dò ý kiến nó. Vấn đề là bạn không thể làm gián đoạn luồng đó (bao giờ). – Justin
Đây là một ví dụ điển hình về lý do tại sao các câu trả lời chủ yếu là các liên kết được khuyến khích mạnh mẽ trên StackOverflow. Liên kết tới 'javafaq.nu' đã chết, vì vậy câu trả lời là vô giá trị. –