weixin_42754420 2019-07-05 17:44 采纳率: 100%
浏览 292

请问下边这段代码的运行流程是啥?

运行代码,在控制台输入字符点回车会被打印,但是控制台上的字符是如何传入这段逻辑代码的呢,请大神指点!

package basic;

import java.io.IOException;
import java.io.PipedReader;
import java.io.PipedWriter;

public class Piped {

    public static void main(String[] args) throws Exception {
        PipedWriter out = new PipedWriter();
        PipedReader in = new PipedReader();
        out.connect(in);
        Thread printThread = new Thread(new Print(in), "PrintThread");
        printThread.start();
        int receive = 0;

        try {
            while((receive = System.in.read())!=-1) {
                out.write(receive);
            }
        } finally {
            out.close();
        }
    }
    static class Print implements Runnable{
        private PipedReader in;

        public Print(PipedReader in) {
            this.in = in;
        }

        public void run() {
            int receive = 0;
            try {
                while((receive = in.read())!=-1) {
                    System.out.println((char)receive);
                }
            } catch (Exception e) {
                // TODO: handle exception
            }
        }
    }



}

  • 写回答

3条回答 默认 最新

  • 游语 2019-07-05 18:19
    关注

    System.in.read()

    评论

报告相同问题?

悬赏问题

  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。