java - 如何使用java读取linux中的命名管道(FIFO)

标签 java linux pipe

我有一个问题,我必须从管道读取流数据,用 C 编写的应用程序将数据写入管道。另一个用 java 编写的应用程序必须从这个 linux 管道中读取。这个java程序是一个多线程程序,当其他程序向它写入数据时,从该管道读取数据。当数据被添加到管道队列时,它应该不断地从管道中读取。任何建议都会有所帮助。

试图解决的问题是:

目前,一个应用程序(在 C 中)实时连续地创建文件到一个目录,另一个应用程序(在 java 中)读取和处理这些文件。在这种方法中,由于从不同目录中写入和读取文件,会有一些时间延迟,希望使用 Linux 管道可以帮助减少时间延迟。有没有其他更好的方法来处理连续的大量数据?

我在 google 上搜索了一些示例示例,以使用多线程 java 程序读取 fifo。我找不到任何合适的示例,如果您遇到任何此类示例,请分享。

最佳答案

如果你创建一个 FIFO 文件,你实际上不会写入磁盘,它只是文件系统中的一个文件,以便于访问。您可以在 fifo(7) (man 7 fifo) 的手册页上阅读有关 FIFO 和 mkfifo(1) (man 1 mkfifo) 的信息命令在 C 中制作它们。

关于java - 如何使用java读取linux中的命名管道(FIFO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524882/

相关文章:

c - 为什么我的写入没有阻塞到这个管道?

在 C 中关闭管道文件描述符

java - 找不到符号方法execute(String)-Android Studio

java - 解锁手机时 Job Scheduler 在一秒钟内运行两次

java - hibernate.hbm2ddl.import_files : Path to the files

c++ - ONVIF: 'GetSnapshotUri' 直接从网络摄像机保存到 FTP

Linux 狂欢 : Move multiple different files into same directory

Java构造函数继承?

linux - config/config.guess 被符号链接(symbolic link)到第三方包中的错误文件

shell - 创建一个写入多个文件的管道 (tee)