文件阅读器查找异常

时间:2016-05-17 12:23:13

标签: java parsing integer filereader

编辑:对不起,我是个白痴。我没有意识到我的循环对我的测试文档数据来说太长了,最终产品将是150行,但我的只有9,导致错误。很抱歉浪费时间,感谢您的帮助

所以我需要编写一个从文件中读取数据的程序,所说的数据用","我使用split命令存储在一个数组中。每个第3个结果都是一个整数,需要像这样解析,但后来遇到异常。我的代码专门..

try {
BufferedReader read = new BufferedReader(new FileReader("temp.txt"));
    String file = read.readLine();
    String[] store=file.split(",");

    for (int i=2; i<150; i=i+3){               
        int result=Integer.parseInt(store[i]);
            if (result>highresult){
                highresult = result;
                fName = store[i - 1];
                sName = store[i - 2];        
        }
}
    read.close();

} catch (IOException e) {
    System.out.println("File Read Error");
}

例外情况是: 线程&#34; main&#34;中的例外情况java.lang.ArrayIndexOutOfBoundsException:11     在testing.Testing.main(Testing.java:28) Java结果:1

我的for循环中的解析器遇到异常,我不能在我的生活中找到问题。我一直盯着它看,我觉得我看到了双倍。有什么想法吗?

添加清晰度 - 测试文件本身包含以下数据

NAME1,Sname1,50,NAME2 Sname2,75,NAME3,Sname3,100

使用sysout消息对其进行测试表明它正确地从数组中收集数据,在更改每个第三个数据时,问题似乎是在[2] [5] [8](50,75,在这种情况下为100)为整数。

感谢您的耐心等待,对本网站来说还是新手。

1 个答案:

答案 0 :(得分:0)

我可以看到2个问题:store [i]不是int,要么你想要从数组的边界中获取一个值

在解析之前打印出i并查看其值,如果它是&lt; 150,请查看文件中的值