伙计们请建议我在java中处理下面的一些好方法。
我需要打开一个FIFO,检查打开时是否有错误,然后
从Fifo读取并写入文件。
如果有人能帮助我,我会很高兴的。
答案 0 :(得分:2)
要使用java读取fifo,您将其视为常规文件,我使用下面的代码验证
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.ByteArrayOutputStream;
class catfile {
public static void main(String[] args) throws java.io.FileNotFoundException, java.io.IOException {
byte[] b = getBytesFromInputStream(new FileInputStream(args[0]));
System.out.print(new String(b));
}
public static byte[] getBytesFromInputStream(InputStream is) throws java.io.IOException {
ByteArrayOutputStream res = new ByteArrayOutputStream();
byte[] bytes = new byte[0x10000]; /* 0x10000 = 65536 */
int numRead = 0;
while ((numRead = is.read(bytes, 0, bytes.length)) >= 0) {
res.write(bytes, 0, numRead);
}
return res.toByteArray();
}
}
测试如下
$ rm -f aaa; mkfifo aaa; (sleep 5; date >> aaa) &
$ javac catfile.java && java -ea -cp . catfile aaa
Thu Dec 5 08:18:51 UTC 2013