2016-11-14 12 views
-2

私は現在、テキストファイルの数値である配列をソートしなければならないクラスのプロジェクトに取り組んでいます。私は、配列サイズを定義することができるように、.txtファイルにいくつの値があるかを調べるリーダーを作成しましたが、while()ステートメントは壊れているように見え、.hasNextLineを使用すると終わりのないループになります。ここに私のコードは次のとおりです。JavaでScanner.hasNextLineを適切に使用していますか?

File unsorted = new File("unsorted.txt"); 

    int j = 0;//Counter for the amount of slots in the array 

    System.out.println("Executing file reading..."); 

    try 
    { 

     Scanner input = new Scanner(unsorted); 

     while(input.hasNextLine()){ 

      j++;//Scanner to count the length of the array 

      System.out.println(j); 

     } 

     input.close(); 

     System.out.println("The file has " + j + " lines."); 

    } 
    catch (IOException ex){ 

     System.out.printf("ERROR: Could not read file 'unsorted.txt'", ex); 

    } 

    System.out.println("File read."); 

マイプリントラインが試した後、{}これまで私はしばらくの間()ループ内でJプリントを持っている場合、それは永遠に行く代わりに、印刷されません。このファイルには現在7つの値が入っています。すべての数字です。

+7

あなたは決して行を読んでいません。より多くの行があるかどうかを確認してください。だから、それはまだ最初の行にあるので "はい"と言っています。 – RealSkeptic

+0

ありがとう...私は今のところ、むしろ馬鹿だと感じています... – bordia

+1

http://stackoverflow.com/questions/8352040/scanner-on-text-file-hasnext-is-infiniteの可能な複製 –

答えて

1

nextLine()に電話をかけたときに、hasNextLine()メソッドの値が変更されるだけです。変更する可能性があります。 nextLine()メソッドは、線の内容を取得し、スキャナを1行だけ進めます。

関連する問題