如何打开和读取FIFO

时间:2013-12-05 05:33:24

标签: java android

伙计们请建议我在java中处理下面的一些好方法。

我需要打开一个FIFO,检查打开时是否有错误,然后

从Fifo读取并写入文件。

如果有人能帮助我,我会很高兴的。

1 个答案:

答案 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