【发布时间】:2010-06-10 17:27:44
【问题描述】:
在我的一台 RedHat Linux 服务器上设置了几个设备。 /dev/ap 和 /dev/reuter。它们是美联社和路透社的新闻提要。在 unix 命令行中,我可以执行“cat /dev/ap”,它会等到消息从提要中下来并将其打印到标准输出。只要流中有一个暂停, cat 就会完成。我尝试了“更多”并得到了相同的结果,与 less -f 相同(完整的味精,可能是运气)并且 tail -f 在一小时内没有输出。
我知道这些是流,但是当我尝试在 new Reader("/dev/ap") 上打开 Java BufferReader 时,我没有得到任何输出。使用以下运行方法:
public void run() {
String line = null;
while(true) {
try {
while((line = bsr.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
几个问题:
1. 某些 unix 命令是否仅限于从文件中打开流?例如尾巴?
2.我在Java端做错了什么,我无法捕获输出?
错误的流类型,错误的包装器类型?
吉姆
【问题讨论】:
-
你实际上是如何初始化
bsr的?你肯定不会像你说的那样做。 -
“ls -l /dev/ap”的输出结果是什么?
-
BufferedReader bsr = new BufferedReader(new FileReader("/dev/ap")
-
ls -l /dev/ap 显示它是到 /dev/ttyaa02 的链接