作业卡在将文件读入 类

Assignment stuck in reading files in to classes

    public static Course getCourse (Scanner scan) throws Exception{

    Course crs = new Course();

    crs.course_id= scan.next();
    crs.course_name = scan.next();
    crs.lecture_id = scan.next();
    crs.instructor_id = scan.next();
    crs.instructor_name = scan.next();


    return crs;


}

这是我的代码问题。

代码中的值是字符串。

getCourse(Scanner scan)

returns class

它应该保存到 Course[] 列表数组中。

我在 unix 中输入了一个数据文件

java Main <data

获取线路数据

public CourseManage(Scanner scanner){

    while(scanner.hasNextLine()){
        numCourses++;
        scanner.nextLine();
    }
    courses = new Course[numCourses];

}

喜欢这个就好了。该文件是 5 行,它 return 是 5 行。

但上面的代码会 return 我出现 null 错误。

好吧

    while(scan.hasNext()){
        crs.course_id= scan.next();
        crs.course_name = scan.next();
        crs.lecture_id = scan.next();
        crs.instructor_id = scan.next();
        crs.instructor_name = scan.next();
        scan.nextLine();
    }

第一次写代码的时候,

它不打印空错误

但是,当我尝试打印字符串值时,它们 return 空值

是静电造成的吗?

我应该把它取下来吗?

is the Static making all the mess?

没有

should i take it off?

没有

你的问题很难理解,你只提供了代码片段。但是,我怀疑问题是您的 CourseManage 构造函数正在读取所有输入数据,以便找出数组的大小。当您随后调用 getCourse 时,扫描器位于 "end-of-file" 位置,并且(自然地)这意味着它无法读取任何内容。

有很多方法可以解决这个问题,但最简洁的方法是将 Course 对象保存在 List<Course> 而不是 Course[] 中。这样你就不需要预读流来计算数组需要多大。