Javaファイルからのシステム入力からどのように読み込むべきかはわかりません。
Java myProg < file
を呼び出したい
ここで、fileは文字列として読み込まれ、mainメソッドでmyProgに渡されるものです。
助言がありますか?
System.in
を使用して、標準入力から読み取ることができます。キーボードから入力するのと同じように機能します。 OSは、ファイルから標準入力への移行を処理します。
class MyProg {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Printing the file passed in:");
while(sc.hasNextLine()) System.out.println(sc.nextLine());
}
}
まあ、それは有効なInputStream
であるため、System.in
自体を読むことができます。または、BufferedReader
でラップすることもできます。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Javaでは、コンソール入力はSystem.inから読み取ることで実行されます。コンソールに接続された文字ベースのストリームを取得するには、System.inをBufferedReaderオブジェクトにラップします。 BufferedReaderは、バッファリングされた入力ストリームをサポートします。最も一般的に使用されるコンストラクターを次に示します。
BufferedReader(Reader inputReader)
ここで、inputReaderは、作成中のBufferedReaderのインスタンスにリンクされたストリームです。 Readerは抽象クラスです。具体的なサブクラスの1つはInputStreamReaderで、バイトを文字に変換します。
System.inにリンクされているInputStreamReaderオブジェクトを取得するには、次のコンストラクターを使用します。
InputStreamReader(InputStream inputStream)
System.inはInputStreamタイプのオブジェクトを参照するため、inputStreamに使用できます。すべてをまとめると、次のコード行は、キーボードに接続されているBufferedReaderを作成します。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
このステートメントの実行後、brはSystem.inを介してコンソールにリンクされる文字ベースのストリームです。
これは、本[Java- The Complete Reference by Herbert Schildt
System.inを使用します。この目的を果たすのはInputStreamです
たとえば、 InputStreamReader または Scanner を使用して、キーボード入力の場合と同様にSystem.in
から読み取ります。
Java myProg arg1 arg2 ...
を呼び出すことができます:
public static void main (String args[]) {
BufferedReader in = new BufferedReader(new FileReader(args[0]));
}