私はプログラムに取り組んでおり、このように機能させたいと思っています
my_program -o Words
「Words」はファイルですが、ファイルからではなくパイプ入力でも機能するようにしたいので、
grep test Words | my_program -o
パイプされたデータを収集して保存するにはどうすればよいですか? データがパイプインされたかどうかを確認するにはどうすればよいですか?
私はプログラムに取り組んでおり、このように機能させたいと思っています
my_program -o Words
「Words」はファイルですが、ファイルからではなくパイプ入力でも機能するようにしたいので、
grep test Words | my_program -o
パイプされたデータを収集して保存するにはどうすればよいですか? データがパイプインされたかどうかを確認するにはどうすればよいですか?
パイプされたデータは、などSystem.in
の標準ツールを使用して読み取ることができます。Scanner
BufferedInputReader
パイプイン入力をチェックするよりも、逆の条件をチェックする方がおそらく簡単でしょう。ファイルが引数として指定されている場合、指定されていない場合は、標準入力から読み取る
Java の場合:
System.in
「は」標準入力です。System.out
「は」標準出力です。System.err
"は" stderr.パイプを使用すると、stdin をリダイレクトするため、stdout への出力はfoo | bar
すべての stdin にリダイレクトされます。foo
bar
System.in
ですInputStream
。ファイルだけでなく標準入力からも読み取ることができるようにしたい場合は、次の方法があります。
InputStream in = System.in;
if (hasOptionToReadFromFile)
in = Files.newInputStream(Paths.get(fileName));
パイプされたデータを読み取るには、プログラムの stdin から読み取る必要があります。
grep test Words | my_program -o
あなたの例|
では、 の stdout を のgrep test Words
stdin にパイプしますmy_program
。ストリーム、パイプ、およびリダイレクトに関する記事を参照してください。