2017-02-07 11 views
-1

"studentmarks.txt"파일을 읽는 방법을 아래에서 만들려고합니다. 그러나 학생 표식을 65 60 52와 같은 int로 읽고 배열에 저장할 수 없습니다. "java.util.InputMismatchException null"오류를 계속 출력합니다. 어떻게하면 "studentmarks.txt"파일의 형식을 변경하지 않고이 문제를 해결할 수 있습니까? 고맙습니다!데이터 파일에서 배열로 여러 int 값을 저장하는 Java 스캐너 클래스

public void readMarksData(String fileName) throws FileNotFoundException 
{ 


    File dataFile = new File(fileName); 
    Scanner scanner = new Scanner(dataFile); 

    String nameOfCohort = scanner.nextLine(); //1 
    System.out.println(nameOfCohort); 

    int noOfMarks = scanner.nextInt(); //2 
    System.out.println(noOfMarks); 

    scanner.nextLine(); 
    while(scanner.hasNext()) 
    { 

     scanner.useDelimiter("[,\n]"); 
     String name = scanner.next();  //3 
     System.out.println(name); 



     //   int marks[] = new int[3]; 
     //   for(int i = 0 ; i <= 3 ; i++) 
     //   { 
     //    marks[i] = scanner.nextInt(); 
     //   } 

     int marks[] = new int[100]; 

     int markOne = scanner.nextInt(); //4 java.util.InputMismatchException null 
     marks = new int[markOne]; 
     System.out.println(markOne); 
     scanner.nextLine(); 



     int markTwo = scanner.nextInt();  //5 
     marks = new int[markTwo]; 
     scanner.nextLine(); 

     int markThree = scanner.nextInt();  //6 
     marks = new int[markThree]; 
     scanner.nextLine(); 
     //    
     //System.out.println(markOne + " " + markTwo + " " + markThree); 

    } 
    scanner.close(); 
} 

studentmarks.txt :

CS1 Group 2 
3 
Andreas Antoniades 
65 85 77 
Charlotte Brocklebank 
87 93 81 
suzanne dawson 
0 55 42 

StudentRecord 등급 :

public class StudentRecord 
{ 

    private String name; 
    private String noOfMarks; 
    private int[] marks; 

    public StudentRecord(String name) 
    { 
    marks = new int[24]; 
    this.name = name; 
    } 
+0

코드를 표시하기 전에 문제를 설명하여 누군가가 자신의 요구 사항을 이해하고 문제가 무엇인지 쉽게 이해할 수 있도록해야합니다. –

답변

1
int result = Integer.parseInt(number); 

당신은 정수 값과 65의 문자열 값을 구문 분석 parseInt(String val) 방법을 사용할 수 있습니다 배열에 저장하십시오.