java - Java 中 BufferedReader 偶尔出现错误

标签 java eclipse exception bufferedreader

当我调用此函数时,我会得到一个ArrayIndexOutOfBoundsException,但并非总是如此。在10次尝试中,我3次出现错误,其余7次工作得很好。

void readTrainingData(Model m) throws FileNotFoundException  {

    BufferedReader br = null;

    try {
        br = new BufferedReader(new FileReader("training_data.csv"));
    } catch (IOException ex)    {
        throw new FileNotFoundException();
    }

    String line = "";
    int i = 0;
    int j;
    try {
        while((line = br.readLine()) != null)    {
            String[] coords = line.split(",");
            if (coords[0] != null && coords[1] != null) {
                m.x[i] = Float.parseFloat(coords[0]);
                m.y[i] = Float.parseFloat(coords[1]);
            }
            else    {
                System.out.println("Check training_data.csv");
            }

            j = 0;
            i++;
        }        
    } catch (IOException ex)    {
        System.out.println("Problem reading file");
        throw new RuntimeException(ex);
    }
}

错误如下:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at polygonprobability.Util.readTrainingData(Util.java:215)

我无法调试它,因为每当我尝试调试时,我都不会收到错误。

我彻底糊涂了。请帮忙。

编辑:我将条件更改为

if (coords[0] != null && coords[1] != null && coords.length == 2)   {
         m.x[i] = Float.parseFloat(coords[0]);
     m.y[i] = Float.parseFloat(coords[1]);
}

第 215 行恰好是 if 条件本身。

即使更改后,错误仍然存​​在。

最佳答案

进行此更改

    if (coords.length == 2 && coords[0] != null && coords[1] != null )   {
             m.x[i] = Float.parseFloat(coords[0]);
         m.y[i] = Float.parseFloat(coords[1]);
    }

关于java - Java 中 BufferedReader 偶尔出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923156/

相关文章:

java - 如何读取Spring数据中的JSON字符串并写入数据库MySql

java - 在一个类中使用 ActionListener 来启动另一个类中的计时器

java - 在 Java 中像表格一样打印二维数组

java - 条件不满足时如何抛出异常

python - 如何使用 doctest 测试嵌套/重新引发的异常?

java - Intellij构建破JAR Artifact

javascript - Zk 集成 lightbox.js

xml - 使用 <import> 时出现 Spring/Eclipse 'referenced bean not found' 警告?

Eclipse 跳转到下一个/上一个标记的事件

java - 正在用java开发API,所以我需要处理异常,我的customException类扩展了异常或运行时异常的类