我尝试使用连接到Linux桌面的游戏控制器中的数据,并使用Clojure输出数据,类似于命令cat /dev/input/js0
的作用。
我有以下代码,但是它不像cat
命令那样输出事件数据:
(with-open [r (clojure.java.io/input-stream "/dev/input/js0")]
(loop [c (.read r)]
(print c)
(recur (.read r))))
发生的情况是,事件数据只会在重复单击按钮几次后才被打印出来,它不像cat
命令那样是连续的。我如何在事件出现时获得它们,以便立即打印它们?
1条答案
按热度按时间ltskdhd11#
由于我不明白的原因,当我切换到使用
println
而不是print
时,我可以看到真实的输出。我的理解是,除了println
的新行之外,这两种方法是相同的,所以不知道为什么print
延迟输出到repl,而println
没有。在任何情况下,使用
println
解决了我的问题,现在我可以打印数据从我的控制器,因为我使用它。