从文件读取数组时没有找到行错误

时间:2015-11-05 15:28:19

标签: java

您好,感谢您花时间回答这个问题。我正在进行一项任务,我必须使用扫描仪将txt文件中的名称和分数读入数组。我不能使用arrayList(哦,这将是多么容易)。无论如何,我一直在拉线找不到错误。我错过了什么 正在读入的数据格式如下:

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;
    }
}

1 个答案:

答案 0 :(得分:1)

您的代码期望名称后跟5行(我想其他一些数据),但是因为您只测试每个第6行存在。如果缺少任何其他行(这意味着总行数不是任何原因的6的倍数),它将失败。