파일 판독기에서 일부 데이터를 읽은 다음 데이터를 모델링하는 다른 클래스의 인스턴스를 작성하는 프로그램이 있습니다. 어쨌든 그 클래스는 작동합니다 (하드 코딩 된 값으로 테스트되었습니다).하지만 이제 환자의 인스턴스 데이터를 파일 판독기에서 읽지 만 보이지는 않는 것처럼 보입니다.Java - 파일 판독기 및 출력의 인스턴스를 작성하십시오.
아무도 내가 잘못 가고 있다고 말할 수 있습니까?
파일 판독기에서 일부 데이터를 읽은 다음 데이터를 모델링하는 다른 클래스의 인스턴스를 작성하는 프로그램이 있습니다. 어쨌든 그 클래스는 작동합니다 (하드 코딩 된 값으로 테스트되었습니다).하지만 이제 환자의 인스턴스 데이터를 파일 판독기에서 읽지 만 보이지는 않는 것처럼 보입니다.Java - 파일 판독기 및 출력의 인스턴스를 작성하십시오.
아무도 내가 잘못 가고 있다고 말할 수 있습니까?
newPatient
컬렉션에 환자 인스턴스를 추가하지 않으므로이 인스턴스가 비어있어 아무 것도 인쇄되지 않습니다. 대기열에 요소 추가 :
while(scan.hasNextLine()){
String firstname = scan.nextLine();
String surname = scan.nextLine();
String illness = scan.nextLine();
int illnessSeverity = scan.nextInt();
String newLine = scan.nextLine();
newPatient.add(new Patient(firstname,surname,illness,illnessSeverity));
for (Patient newPatientData : newPatient) {
System.out.println(newPatientData);
}
먼저 우선 순위 대기열에 데이터를 추가해야합니다. 나는 당신이 그것을 놓친 것 같아요.
PriorityQueue<Patient> newPatient = new PriorityQueue<>();
File fileName = new File("patients.txt");
Scanner scan = null;
try {
scan = new Scanner(fileName);
while(scan.hasNextLine()){
String firstname = scan.nextLine();
String surname = scan.nextLine();
String illness = scan.nextLine();
int illnessSeverity = scan.nextInt();
String newLine = scan.nextLine();
Patient newP = new Patient(firstname,surname,illness,illnessSeverity);
newPatient.add(newP);
}
for (Patient newPatientData : newPatient) {
System.out.println(newPatientData);
}
} catch(Exception e) {
System.out.println("ERROR - file not found");
}
아, 예, 감사합니다. ! 하지만 위의 코드를 보니 우선 순위 큐가 제대로 작동하지 않습니다. 어떤 제안? 하드 코딩 된 데이터에서 작동하는 것 같습니다. 이 메소드의 원본 메시지보기 – AP010AP
대기열의 poll() 메소드를 사용하지 않았기 때문입니다. 루프 반복자가 정렬 된 순서로 반환되지 않습니다. for 루프 대신에이 작업을 수행하십시오 (! newPatient.isEmpty()) {System.out.println (newPatient.poll());} – Vikrant
아, 고맙습니다. – AP010AP
첫 번째 문제는 예외 처리기가 예외를 인쇄하지 않는다는 것입니다. 오류를 보려면 printStackTrace()를 호출해야합니다. – OldProgrammer
실제로 데이터를 직접 출력 할 수는 있지만 우선 순위 큐에서 원하는 작업을 수행하지 못하고 작동하지 않지만 일부 하드 코딩 된 값과 함께 사용할 수 있습니다. 문제의 루프에 대한 내용은 다음과 같습니다. – AP010AP