当前位置: 首页 > 面试题库 >

如何异步读取stdin?

谷梁宏恺
2023-03-14
问题内容

当有字符可用时,是否有一种优雅的方法来触发事件System.in?我想避免投票InputStream.available()


问题答案:

您将必须创建一个单独的线程以阻止读取,直到有可用的线程为止。

如果您不想实际消耗输入,则必须用内部缓冲区包装它,读入缓冲区,然后喊叫,并在要求输入时从缓冲区返回数据。

您可以这样解决:

InputStream stdin = System.in;

// Create a wrapper (with it's own dedicated read-thread)
MyListenableInputStream listenableInputStream =
        new MyListenableInputStream(stdin);

// Update System.in with something more useful.
System.setIn(listenableInputStream);


 类似资料:
  • 似乎可以从Android(本机)访问;但我仍在努力让这一切顺利进行。 在我的React本机应用程序中,我有如下内容: 百货商店 用户减速器 从商店获取用户 现在的问题开始时,我试图让相同的用户从Android,我所有的挫折尝试这是我有: 由于用户认为它是一个对象,我不知道这是否是获取的正确方法,我尝试获取,但没有成功。 我开始认为我应该使用react原生sqlite存储,在那里我可以知道我的数据结

  • 我有一个Kafka分区,和一个parkStreaming应用程序。一个服务器有10个内核。当火花流从Kafka收到一条消息时,后续过程将需要5秒钟(这是我的代码)。所以我发现火花流读取Kafka消息很慢,我猜当火花读出一条消息时,它会等到消息被处理,所以读取和处理是同步的。我想知道我可以异步读取火花吗?这样从Kafka读取的数据就不会被后续处理拖动。然后火花会很快消耗来自Kafka的数据。然后我可

  • 最后一个适合这个网站的问题。

  • 我试图以异步方式获取获取结果,如下所示: 但是当我看控制台时,我得到了这个: 所以我觉得当谈到console.logpromise仍然悬而未决?(有一个工具提示说“刚才评估了下面的值”,所以我猜它是在promise解决时更新的?当然,下面的代码(此处未显示)不起作用,因为它需要读取的返回值。我甚至不知道如何访问PromiseValue。 进行异步读取调用的正确方法是什么? 附言:我用的是香草JS。

  • 我在js脚本中有以下内容: 其中sendData2是使用axios的异步调用。船长看起来像 在我的php文件中,我有: 但这是行不通的。我认为php会将$\u POST中的数组转换为字符串,但我不确定。 两个问题: 如何将$skipper转换回数组 我一直在尝试使用print\r查看服务器上的数据,但由于这是一个异步调用,它无法工作,因为print\r结果被发送回js脚本,而不是在屏幕上打印出来。

  • 异步文件读写 读文件 use AsyncFile; $content = (yield AsyncFile::read(__ROOT__."runtime/test.txt")); 写文件 $res = (yield AsyncFile::write(__ROOT__."runtime/test.txt", "hello wordls!")); $res = (yi