학생 기록 (이름, 성 및 학년)이있는 파일을 읽으려고합니다. 이 작업을 수행하는 간단한 코드를 작성했지만 텍스트 파일에서 두 줄을 읽은 후 코드가 실패합니다. 여기 내 코드입니다 :파일에서 학생 기록을 읽는 중
public class Student {
private final String first,last;
final int MAXGRADE = 100;
final int LOWGRADE = 0;
private final int grade;
public Student(String firstname,String lastname, int grade){
this.first = firstname;
this.last = lastname;
this.grade = grade;
}
@Override
public String toString(){
return first + " " + last + "\t" + grade;
}
}
및 드라이버는 컴파일러가 오류의 원인으로이
grade = fileInput.nextInt();
가리키는 코드를
public class driver {
public static void main(String[] args) throws FileNotFoundException {
String first_name ,last_name;
int grade;
Scanner fileInput = new Scanner(new File("data1.txt"));
while (fileInput.hasNextLine())
{
first_name = fileInput.next();
last_name = fileInput.next();
grade = fileInput.nextInt();
Student st = new Student(first_name, last_name,grade);
System.out.println(st);
}
}
}
있습니다.
무엇이 오류입니까? – Sajjad
이것은 스캐너를 사용하는 방법이 아닙니다. 'nextXXX' 메소드는 다음 구분자 (' "\ n"')가 될 때까지 전체 String을 가져 와서 해석합니다. 그래서 당신의 의지 루프에서 실제로 한 학생에게 3 줄을 가져 가야합니다. – AxelH
이상적으로, 전체 오류 스택을 볼 수 있도록 'try catch'블록에 실행 코드를 래핑해야합니다. – user75ponic