分配在将文件读入类中时陷入困境

时间:2015-03-30 12:00:26

标签: java arrays java.util.scanner

    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)

返回班级

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

我在unix中输入数据文件

java Main <data

获取行数据

public CourseManage(Scanner scanner){

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

}
好像这样。该文件是5行,它返回5行。

但上面的代码会返回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();
    }

首先我做了代码,

它不会打印空错误

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

静态制造所有混乱?

我应该把它摘下来吗?

1 个答案:

答案 0 :(得分:0)

  

静态制造所有混乱?

没有

  

我应该把它摘下来吗?

没有

您的问题很难理解,而且您只提供代码段。但是,我怀疑问题是你的CourseManage构造函数正在读取所有输入数据,以便找出制作数组的大小。然后,当您打电话给getCourse时,扫描仪位于&#34;文件末尾&#34;位置,(自然地),这意味着它无法读取任何内容。

有很多方法可以解决这个问题,但最简单的方法是将Course个对象放在List<Course>而不是Course[]中。这样你就不需要预先读取流来确定数组需要多大的数量。