세 개의 작은 자바 클래스가 있는데 파일에서 일부 데이터를 읽고 인쇄하려고합니다. 여기에 제 코드가 있으며 꽤 짧습니다.왜 내 학생 문자열이 인쇄되지 않습니까?
Student.javapackage students;
import java.text.*;
public class Student{
private String name;
private int age;
private double gpa;
public Student(String name, int age, double gpa){
this.name = name;
this.age = age;
this.gpa = gpa;
}
public String toString(){
String gpa_string = new DecimalFormat("#.##").format(gpa);
return name + " " + Integer.toString(age) + " " + gpa_string + "\n";
}
}
Students.java
package students;
import java.util.*;
import java.io.*;
public class Students {
public static final int MAX = 100;
private Student students[];
private int count;
public void readFile(String path) throws IOException{
students = new Student[MAX];
Scanner x = new Scanner(new File(path));
count = 0;
while (x.hasNextLine() && count < MAX){
String name = x.nextLine();
if("".equals(name)){
System.out.println("Breaking out of loop");
break;
}
System.out.println(name);
int age = x.nextInt();
System.out.println(age);
double gpa = x.nextDouble();
System.out.println(gpa);
students[count] = new Student(name, age, gpa);
count += 1;
System.out.println(count)
}
x.close();
}
public String toString(){
String result = "";
for(int i = 0; i < count; ++i)
result += students[i].toString();
return result;
}
Driver.java
package students;
import java.io.*;
public class Driver {
public static void main(String[] args) throws IOException{
Students students = new Students();
students.readFile("Students.txt");
System.out.print(students.toString());
}
}
이것은 Students.txt의 모습입니다 :
Name0
22
1.2
Name1
22
2.71
Name2
19
3.51
,363,210
나는이보고 기대 해요 : NAME0 22 1.2 이름 1 22 2.71 NAME2 19 3.51
을하지만 그 대신 나는 전혀 출력을 얻을 수 없습니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다. 파일을 찾을 수 없습니까? 나는 파이썬에서 왔고, throws IOException
물건으로 try: ... except: pass
일종의 거래가 진행되고있는 것처럼 보입니다.
Eclipse를 사용하고 있으며 src 폴더, bin 폴더 및 작업 영역 상단에 Students.txt가 있어야합니다. 왜냐하면 어디로 갈 필요가 있는지 알 수 없기 때문입니다.
편집 :
while 루프의 조건을 변경하고 인쇄 문의 무리를 추가, 나는 단일 학생을 읽어 출력 지금 그것을 얻었다 후 :. NAME0 1.2 루프가 끊어졌습니다. Name0 22 1.20
왜 1 루프 이후에 멈추는 지 이해할 수 없습니다.
코드를 디버깅 했습니까? 내 말은, 파일을 읽는 것에 관한 데이터를 출력하려고 했니? 모든 루프처럼 '루프'메시지 나 다른 것을 인쇄하십시오. –
@newboyhun 좋은 아이디어! : 3 내 질문을 업데이트 할 것입니다 – Broseph
@Broseph : 업데이트, 내 업데이트 된 답변보기 – drewmoore