我有一个命令可以提供一个文件列表(比如 find )。
对于每个文件,我想用Java做一些事情:
find ./files <some restrictions> | java -jar processor.jar
如何从这个未命名/匿名的管道中读取?
答案 0 :(得分:2)
非常简单;在shell中使用管道意味着管道左侧的过程的标准输出是管道右侧的过程的标准输入将读取。
因此,Java进程只需要读取stdin,而在Java中,这是System.in
。
关于使用find
命令,它很好,真的;但是如果您使用Java 7+,则可以考虑使用FileVisitor
代替Files.walkFileTree()
。