从文件获取整数时出错(将String转换为Int)

时间:2014-08-02 02:08:39

标签: java file

我有一个文件:student.txt

1      Adam     50       50       50

2      Eric     34       28       38

3      Joash    44       48       49

4      Bill     34       30       45

我有2个班级:1个是主要的,另一个是完成所有工作。

// Class 1 ******************

public class Main {
    public static void main(String[] args) {
        readfile a = new readfile();
        a.openFile();
        a.readFile();
        a.closeFile();
    }
}

// ********* Class 2

import java.util.*;
import java.io.*;
import java.lang.*;

public class readfile {

    private Scanner x;

    public void openFile(){
        try{
            x = new Scanner(new File("student.txt"));

        }
        catch(Exception e){
            System.out.println("Error");
        }
    }
    public void readFile(){
        int a=0;
        String b;
        int c=0;
        int d = 0;
        int e = 0;
        int total;
        while(x.hasNext()){
             a = x.next();
             b = x.next();
             c = x.next();
             d = x.next();
             e = x.next();
             int total = c+d+e;
             total = x.nextInt();
            System.out.printf("%s %s %s %s %s %s/n",a,b,c,d,e,total);
        }
    }
    public void closeFile(){
        x.close();
    }
}

我有两个错误:

1)这是a = x.next();,表示

  

无法从String转换为int。

你能告诉我如何解决这个问题吗?

2)这是在:

  

线程“main”中的异常

     

错误java.lang.NullPointerException

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

尝试:

a = Integer.parseInt(x.next());

而不是

a = x.next();

您可以尝试使用

a = x.nextInt();

答案 1 :(得分:1)

Scanner.next()将下一个标记作为String返回。当java尝试将int a设置为String时,会发生错误。您可以通过使用Scanner.nextInt()来解决此问题,它会将下一个标记作为整数返回,或者如果下一个标记不是int则抛出错误。如果