Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令行java、文件参数和管道输入_Java_Command Line_Arguments_Pipe - Fatal编程技术网

命令行java、文件参数和管道输入

命令行java、文件参数和管道输入,java,command-line,arguments,pipe,Java,Command Line,Arguments,Pipe,我正在做一个程序,我希望它能像这样运行 my_program -o Words 其中“Words”是一个文件,但我也希望它能够使用管道输入而不是来自文件,所以 grep test Words | my_program -o 如何收集和存储管道中的数据?如何检查数据是否已通过管道输入?若要读取管道数据,应在程序中从stdin读取 grep测试单词| my_程序-o 在您的示例中,|将grep测试单词的stdout导入myu程序的stdin中。请参阅。可以使用标准工具(如扫描仪,缓冲读取器等)从

我正在做一个程序,我希望它能像这样运行

my_program -o Words
其中“Words”是一个文件,但我也希望它能够使用管道输入而不是来自文件,所以

grep test Words | my_program -o

如何收集和存储管道中的数据?如何检查数据是否已通过管道输入?

若要读取管道数据,应在程序中从stdin读取

grep测试单词| my_程序-o


在您的示例中,
|
grep测试单词的stdout
导入
myu程序的stdin中。请参阅。

可以使用标准工具(如
扫描仪
缓冲读取器
等)从
系统中读取管道数据

与检查管道输入相比,可能更容易检查相反的条件:如果文件已指定为参数,如果未指定,则从Java中的标准输入读取:

  • System.in
    “是”标准输入
  • 系统输出
    “是”标准输出
  • System.err
    “是”标准
通过使用管道,可以重定向stdin,因此
foo | bar
会将
foo
输出到stdout的内容重定向到
bar
的stdin中

System.in
是一个
InputStream
。如果您希望能够从stdin以及文件中读取数据,一种可能性是:

InputStream in = System.in;

if (hasOptionToReadFromFile)
    in = Files.newInputStream(Paths.get(fileName));

“编程作业”如家庭作业?有价值的信息,但记住标签是禁止的@泡沫桩