温馨提示×

Java中如何同时读取多个stdin流

小樊
84
2024-08-24 02:30:28
栏目: 编程语言

在Java中可以使用多线程来同时读取多个stdin流。可以创建多个线程来读取不同的stdin流,并让这些线程并行运行。

下面是一个示例代码,演示如何同时读取两个stdin流:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MultiStdinReader {

    public static void main(String[] args) {
        Thread t1 = new Thread(new StdinReader("Stream 1:"));
        Thread t2 = new Thread(new StdinReader("Stream 2:"));

        t1.start();
        t2.start();
    }

    static class StdinReader implements Runnable {
        private String streamName;

        public StdinReader(String streamName) {
            this.streamName = streamName;
        }

        @Override
        public void run() {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            
            try {
                while (true) {
                    System.out.print(streamName);
                    String line = reader.readLine();
                    System.out.println("Read: " + line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

在上面的示例中,创建了两个线程t1和t2,分别读取stdin流,并输出读取的内容。这样可以同时读取两个stdin流,并且不会相互干扰。

0