Привет, спасибо, что нашли время ответить на этот вопрос. Я работаю над назначением, где мне нужно читать имена и оценки из txt-файла в массивы с помощью сканера. Я не могу использовать arrayList (о, насколько это было бы проще). Во всяком случае, я продолжаю тянуть линию, не обнаружив ошибок. Что мне не хватает. считываемых данных в отформатирован как таковой:Ошибка при обнаружении ошибки при чтении из файла в Array
Puckett, Karen
10 10 9.5 10 10 8 9.5 10 10 10 9 10 10 10 0
4 3 5 3 5 2 3 2 1.5 1 5 3.5
17.5 24 22 23.5 22 23
90 91
96
код начинается здесь
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
/**
*
* @author Cade
*/
public class CS1180Project04McLarty {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException {
int studentCount = 16;
int LabCount = 16;
int quizCount = 12;
double [] projectGrades;
double [] examGrades;
double [] finalsGrade;
double [] labGrades = new double[LabCount];
double [] quizGrades = new double [quizCount];
String [] names = new String[studentCount];
File doc = new File("scores.txt");
Scanner fin = new Scanner(doc);
names = fileReaderNames(studentCount ,doc, fin);
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
/**
* reads in names only
* @param studentCount int count of students set to 16 in main
* @param doc file being read
* @param fin scanner
* @return complete Array of the names
*/
private static String[] fileReaderNames(int studentCount, File doc, Scanner fin) {
int count = 0;
String [] names = new String[studentCount];
while (fin.hasNext()) {
names[count] = fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
count++;
}
fin.close();
return names;
}
}
внутри 'while (fin.hasNext())' почему вы используете 5 'nextLine()'? –
Q отредактирован для отображения формата –
Вы проверяете, есть ли еще одна строка для чтения: fin.hasNext(), а затем читать 6 строк. Но вам всегда нужно проверить, прежде чем читать строку. –