2017-10-04 4 views
-3

こんにちは、配列をtxtファイルから埋めたいですが、プログラムを実行するときにエラーjava.util.NoSuchElementException: No line foundがあります。これは私のコードです。int配列をtxtで埋めてください。

4 

75 

62 

32 

55 
+2

ここではファイルを読みません。代わりにユーザー入力を読み込んでいます。 –

+0

私が知る限り、あなたはtxtファイルを入力するためにスキャナを使うことができます。バッファ付きのリーダーだけではありません –

+1

はい、ここで何をしているのですか?したがって、エラーの原因となるコードは、投稿したコードとは異なります。 –

答えて

1

whileループとforループの両方があなたのトラブルの原因のように見える持つ:

private static void leeArchivo() 
{ 
    Scanner s = new Scanner(System.in); 
    //Size of the array 
    int size = Integer.parseInt(s.nextLine()); 
    datos = new int[size]; 
    while (s.hasNextLine()) { 
     for (int i = 0; i < size; i++) { 
      //fill array with values 
      datos[i] = Integer.parseInt(s.nextLine()); 
     } 
    } 
} 

TXTは次のようになりますが、最初の行は配列のサイズです。あなたの入力が正しいと確信しているなら、すなわち。我々は次の行があるを知っているので、それは必須ではありませんようhasNextLine()のためのテストはありません、上記のコードで

private static void leeArchivo() 
{ 
    Scanner s = new Scanner(System.in); 

    //Size of the array 
    int size = Integer.parseInt(s.nextLine()); 
    datos = new int[size]; 

    for (int i = 0; i < size; i++) { 
     //fill array with values 
     datos[i] = Integer.parseInt(s.nextLine()); 
    } 
} 

:行数は、最初の番号と一致し、あなたはこのような何かを行うことができます。安全に再生したい場合は、次のようなものを使用してください:

private static void leeArchivo() 
{ 
    Scanner s = new Scanner(System.in); 

    //Size of the array 
    int size = Integer.parseInt(s.nextLine()); 
    datos = new int[size]; 

    int i = 0; 
    while ((i < size) && s.hasNextLine()) { 
     //fill array with values 
     datos[i] = Integer.parseInt(s.nextLine()); 
     i++; 
    } 
} 
関連する問題