我目前在使用BufferedReader获取unix管道句柄时遇到了问题。我的java应用程序首先创建管道,然后通过此java应用程序执行的外部perl脚本写入此管道,最后Java应用程序线程连续从此unix管道读取。
我使用以下代码从Java读取unix管道。但是我看到第4个语句阻塞而且永远不会返回。我使用的是JDK 1.8 -
File f = new File("/tmp/abc_c");
System.out.println(f.exists) ;
if (f.exists())
BufferedReader reader = new BufferedReader(new FileReader("/tmp/abc_c"));
我也看到sysout打印为true。我想知道使用BufferedReader读取Unix管道是否正确?
答案 0 :(得分:0)
问题与糟糕的代码有关。文件读取发生在while循环中,并且它提供了太多文件打开消息。通过在循环外移动文件打开代码来解决这个问题。