2017-02-20 3 views
0

私はプログラムに入力された入力テキストを読み込もうとしています。スキャナはinput.txtを読み込んだ後にLineが見つかりませんでした。

Java Echo < input.txt 

import java.util.Scanner; 

public class Echo { 
    public static void main(String[] args) { 

     // Reads Text File 

     Scanner sc = new Scanner(System.in); 
     while (sc.hasNextLine()){ 
      System.out.println(sc.nextLine()); 
     } 
     // Reads User's Input 
     System.out.println("Keyboard Input: "); 
     if(sc.hasNextLine()){ 
      System.out.println(sc.nextLine()); 
     } 
    } 
} 

入力が読み込まれますが、sc.nextLinenullを返します。 どうすればいいですか?sc.nextLine()はファイルの代わりにユーザー入力から読み込みますか?

結果

$ java Echo < input.txt 
A:Economy:name:W 
Keyboard Input: 

キーボード入力が読みではなく、単に空白になっています。 後でコマンドラインに入力できるようにするにはどうすればよいですか?

+0

'std.in'をファイルにリダイレクトしています。あなたは終わりに達した後に何が起こると思いますか? –

+1

ファイルの代わりにユーザー入力から読み込むには、**入力をリダイレクトしないでください**。プログラムにファイル名を引数として与え、プログラムにファイルをオープンさせます。それを直接読んでください。 – Andreas

+0

javaをファイルから読み込む方法 –

答えて

0

あなたは不可能と尋ねています。入力はリダイレクトされ、リダイレクトされたままです。引数としてファイル名を指定し、別のファイル名をScannerで実行する必要があります。

NBコントロールnextLine()のテストではhasNext()でも意味がありません。最初の読み取りループと同様に、hasNextLine()にする必要があります。

+0

入力を入力後にリダイレクトする方法はありますか? – Bae

+0

私の答えのどの部分が分かりませんか? – EJP

+0

あなたはそれを行う別のスレッドを生成することができます – hhafeez

関連する問題