Использование цикла while для чтения из файла

Мой вопрос: как использовать цикл while для чтения входных данных из файла??

Я написал этот код, и мне интересно, как я могу написать его снова по-другому, используя цикл while.


Scanner infile = new Scanner(new FileReader("while_loop_infile.in"));

    int sum;
    int average;
    int N1, N2, N3,N4,N5, N6, N7, N8, N9, N10;

    N1= infile.nextInt();
    N2= infile.nextInt();
    N3= infile.nextInt();
    N4= infile.nextInt();
    N5= infile.nextInt();
    N6= infile.nextInt();
    N7= infile.nextInt();
    N8= infile.nextInt();
    N9= infile.nextInt();
    N10= infile.nextInt();

    sum = N1 + N2 + N3 + N4 + N5 + N6 + N7 + N8 + N9 + N10;
    average = sum / 10;

    System.out.println("The sum is " + sum);
    System.out.println("The average is " + average);

    infile.close();

-------------------- Это входной файл ------------------------- -----

10
20
30
40
50
60
70
80
90
100

person ARK    schedule 01.11.2015    source источник
comment
Повторяющийся вопрос, читать следующий int из файла   -  person gatech-kid    schedule 01.11.2015
comment
@gatech-kid Это даже отдаленно не похоже на это.   -  person Alexander    schedule 01.11.2015


Ответы (3)


С минимальными изменениями, чтобы просто поддерживать запрошенное вами изменение:

Scanner infile = new Scanner(new FileReader("while_loop_infile.in"));

int sum;
int average;
int N[10];
int i = 0;

while (i < 10) {
    N[i] = infile.nextInt();
    sum += N[i];
    i++;
}   

average = sum / 10; 

System.out.println("The sum is " + sum);
System.out.println("The average is " + average);

infile.close();
person Jameson    schedule 01.11.2015

Класс Scanner имеет для этого несколько методов. Самый основной из которых hasNext().

Этот метод возвращает true, если есть токен для чтения.

while(myScanner.hasNext()){
    // Read next input.
}

РЕДАКТИРОВАТЬ: Вот документация< /а>.

person Alexander    schedule 01.11.2015

Повторяющийся вопрос, чтение чисел из файла

Scanner in = new Scanner(new BufferedReader(new FileReader());  
double sum = 0.0;
int count = 0;
while(in.hasNext()) {
  if(in.hasNextInt()) {
    sum += in.nextInt();
  }
}
System.out.println("Average is " + sum/count);
person gatech-kid    schedule 01.11.2015