web-dev-qa-db-ja.com

System.inからの読み取り-Java

Javaファイルからのシステム入力からどのように読み込むべきかはわかりません。

Java myProg < fileを呼び出したい

ここで、fileは文字列として読み込まれ、mainメソッドでmyProgに渡されるものです。

助言がありますか?

35
Alex

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());
    }
}
58
corsiKa

まあ、それは有効なInputStreamであるため、System.in自体を読むことができます。または、BufferedReaderでラップすることもできます。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
19
xappymah

Javaでは、コンソール入力はSystem.inから読み取ることで実行されます。コンソールに接続された文字ベースのストリームを取得するには、System.inBufferedReaderオブジェクトにラップします。 BufferedReaderは、バッファリングされた入力ストリームをサポートします。最も一般的に使用されるコンストラクターを次に示します。

BufferedReader(Reader inputReader)

ここで、inputReaderは、作成中のBufferedReaderのインスタンスにリンクされたストリームです。 Readerは抽象クラスです。具体的なサブクラスの1つはInputStreamReaderで、バイトを文字に変換します。

System.inにリンクされているInputStreamReaderオブジェクトを取得するには、次のコンストラクターを使用します。

InputStreamReader(InputStream inputStream)

System.inInputStreamタイプのオブジェクトを参照するため、inputStreamに使用できます。すべてをまとめると、次のコード行は、キーボードに接続されているBufferedReaderを作成します。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

このステートメントの実行後、brはSystem.inを介してコンソールにリンクされる文字ベースのストリームです。

これは、本[Java- The Complete Reference by Herbert Schildt

5
Shirgill Farhan

System.inを使用します。この目的を果たすのはInputStreamです

5
Riccardo Cossu

たとえば、 InputStreamReader または Scanner を使用して、キーボード入力の場合と同様にSystem.inから読み取ります。

4
Isaac Truett

Java myProg arg1 arg2 ...を呼び出すことができます:

public static void main (String args[]) {
    BufferedReader in = new BufferedReader(new FileReader(args[0]));
}
1
Collin Price