1

私はプログラムに取り組んでおり、このように機能させたいと思っています

my_program -o Words

「Words」はファイルですが、ファイルからではなくパイプ入力でも機能するようにしたいので、

grep test Words | my_program -o

パイプされたデータを収集して保存するにはどうすればよいですか? データがパイプインされたかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

1

パイプされたデータは、などSystem.inの標準ツールを使用して読み取ることができます。ScannerBufferedInputReader

パイプイン入力をチェックするよりも、逆の条件をチェックする方がおそらく簡単でしょう。ファイルが引数として指定されている場合、指定されていない場合は、標準入力から読み取る

于 2013-01-14T21:25:53.833 に答える
1

Java の場合:

  • System.in「は」標準入力です。
  • System.out「は」標準出力です。
  • System.err"は" stderr.

パイプを使用すると、stdin をリダイレクトするため、stdout への出力はfoo | barすべての stdin にリダイレクトされます。foobar

System.inですInputStream。ファイルだけでなく標準入力からも読み取ることができるようにしたい場合は、次の方法があります。

InputStream in = System.in;

if (hasOptionToReadFromFile)
    in = Files.newInputStream(Paths.get(fileName));
于 2013-01-14T21:28:00.903 に答える
1

パイプされたデータを読み取るには、プログラムの stdin から読み取る必要があります。

grep test Words | my_program -o

あなたの例|では、 の stdout を のgrep test Wordsstdin にパイプしますmy_programストリーム、パイプ、およびリダイレクトに関する記事を参照してください。

于 2013-01-14T21:18:39.307 に答える