java从unix设备读取数据
在我的一台RedHat Linux服务器上安装了两台设备/dev/ap和/dev/reuter。它们是美联社和路透社的新闻源。在unix命令行中,我可以执行“cat/dev/ap”,它会等待消息从提要中下来并打印到stdout。一旦流中出现暂停,cat就会完成。我尝试了“更多”并得到了同样的结果,同样的结果是少-f(完整的味精,可能很幸运),而tail-f在一个小时内没有输出
我知道这些是流,但当我尝试在新的阅读器(“/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命令是否仅限于从文件打开流?e、 g.尾巴?
2.我在Java方面做错了什么,无法捕获输出?
错误的流类型,错误的包装类型?
吉姆
# 1 楼答案
你的方法看起来不错,但是^{} 对文本行的构成非常特别。您可以查看原始流:
您还可以尝试^{} ,如从
/dev/zero
读取的这个片段所示:附录:对于串行I/O,考虑RXTX或similar库。