< 記号と > 記号を使用して、コマンド ラインで渡されたファイルをどのように読み書きしますか?
これはコマンドです:java Main < input.txt > output.txt
したがって、Java ファイルのコードがどのようになるかを知りたいのです。これらのファイルを参照するにはどうすればよいですか?
明確にするために、渡された場合はファイルを問題なく使用できます:java Main input.txt output.txt
が、現在、山括弧の使用に制限されています。
< 記号と > 記号を使用して、コマンド ラインで渡されたファイルをどのように読み書きしますか?
これはコマンドです:java Main < input.txt > output.txt
したがって、Java ファイルのコードがどのようになるかを知りたいのです。これらのファイルを参照するにはどうすればよいですか?
明確にするために、渡された場合はファイルを問題なく使用できます:java Main input.txt output.txt
が、現在、山括弧の使用に制限されています。
Linux/Unix/Bsd について話していると仮定すると ...
およびリダイレクトは、シェル自体によって処理されます<
。Java アプリケーションが呼び出されるまでに、シェルはすでにパス名が何に解決されるかを把握し、それらを開き、および>
に使用されるファイル記述子にそれらを接続しています。System.in
System.out
したがって、プログラムをコーディングして から読み書きするだけSystem.in
ですSystem.out
。
(アプリケーションがパイプラインの一部である場合、同じ原則が適用され、FD #2 がリダイレクトされた場合、それは に接続されSystem.err
ます。単純ではない唯一のことは、次のような異常なことを行う場合です:
java Main < input.txt 3> output.txt
これにより、FD #3 がファイルにリダイレクトされます。私の知る限り、Java から 2 を超える FD に書き込む簡単な方法はありません。)
これらの演算子は、 から入力を読み取り、結果を にinput.txt
書き込むことを意味しますoutput.txt
。
通常の規則に従って、<
isSystem.in
および>
isSystem.out
です。ただし、この場合、文字列を System.in に渡すだけでは、期待どおりの結果が得られない可能性があります。