尝试解析对象的文本文件时出现NumberFormatException

时间:2013-12-31 22:18:24

标签: java parsing numberformatexception

在尝试创建对象并使用文本文件中的数据将它们添加到ArrayList时,程序抛出了NumberFormatException,我完全不知道为什么,一切似乎都对我好。以下是发生异常的方法:

static void read(String file) {
    anime.clear();

    try {
        Scanner fin = new Scanner(file); 
        while (fin.hasNextLine()) {
            String[] vals = fin.nextLine().split("[ ]");
            anime.add(new Anime(Integer.parseInt(vals[0]), 
                                vals[1], 
                                Integer.parseInt(vals[2]), 
                                Integer.parseInt(vals[3])));
        }
        fin.close();

    } catch(Exception e) {
        System.out.println("ERROR: Something went wrong!");
        e.printStackTrace();
        System.exit(-1);
    }       
}

这是文本文件:

0 Angel_Beats! 13 2010
0 Baccano! 13 2007
0 Bakemonogatari 15 2009
0 Berserk 25 1997
0 Clannad 23 2007

3 个答案:

答案 0 :(得分:0)

问题可能是您的split()电话。只需split(" ")而不使用方括号。

答案 1 :(得分:0)

当您尝试将eg:"abc"值的inavlid字符串转换为整数时调用NumberFormatException。

这是 有效字符串为eg"123"。 在你的情况下按空格划分..

split(" ");将按" "分隔行数。

答案 2 :(得分:0)

我将Scanner fin = new Scanner(file);更改为Scanner fin = new Scanner(new File(file));,现在效果很好。我不认为区别很重要但你去了。