从文本中读取Java数据

从文本中读取Java数据,java,file-io,bufferedreader,fileinputstream,Java,File Io,Bufferedreader,Fileinputstream,我正在尝试读取包含3列数据集的ex2data2.txt。我想把它存储在我的x数组和y数组中。但它不起作用。它无法读取文本文件。文本文件的位置与我的代码一起位于我的src文件夹中 double[][] x = new double[180][1]; double[][] y = new double[180][0]; try{ BufferedReader br=new BufferedReader(new FileReader("ex2data

我正在尝试读取包含3列数据集的ex2data2.txt。我想把它存储在我的x数组和y数组中。但它不起作用。它无法读取文本文件。文本文件的位置与我的代码一起位于我的src文件夹中

    double[][] x = new double[180][1];
    double[][] y = new double[180][0];
       try{
           BufferedReader br=new BufferedReader(new FileReader("ex2data2.txt"));
           String words[]=new String[2];
           String line=null;
           int i = 0;
           while((line=br.readLine())!=null){
               words=line.split(",");
               //double[i] y = Double.parseDouble(words);
                x[i][0] = Double.parseDouble(words[0]);
                x[i][1] = Double.parseDouble(words[1]);
                y[i][0] = Double.parseDouble(words[2]);
           i++;
           }
           br.close();
       }
       catch(Exception e){
           System.err.println("Error: Target File Cannot Be Read");
       }
您应该将文件放在顶部的父项目文件夹中。不在src/中

编辑:我已经运行了这个,为了证明

访问文件,读取所有数据

java.lang.NumberFormatException:对于输入字符串:43 323 33这是我放在那个文件中的

下一轮

在纠正了这一点之后

现在已经完成了

请找到我放文件的截图

catch(Exception e){
   System.err.println("Error: Target File Cannot Be Read");
}
您应该将文件放在顶部的父项目文件夹中。不在src/中

编辑:我已经运行了这个,为了证明

访问文件,读取所有数据

java.lang.NumberFormatException:对于输入字符串:43 323 33这是我放在那个文件中的

下一轮

在纠正了这一点之后

现在已经完成了

请找到我放文件的截图

catch(Exception e){
   System.err.println("Error: Target File Cannot Be Read");
}
任何编写此代码的开发人员都应该立即被解雇

永远不要捕获异常,但要执行正确和特定的错误处理。捕获要处理的最精确错误,例如FileNotFoundException,避免捕获您不知道如何处理的错误。如果有疑问,请重新显示错误,以便外部错误处理程序可以处理它。始终记录错误,除非预期会发生错误

然后您将得到更精确的错误消息。但您选择忽略实际错误e

真正阅读Java书籍或教程,特别是关于正确异常处理的部分。你放弃了你一直做的错误,这让你的生活变得困难

例外情况几乎永远都不应该被忽略。你被要求处理它们是有原因的!事实上,也有未检查的异常,您不需要这样做。更明显的是,在这里,你需要正确处理它们

您的错误很可能是一个BoundsException数组,您不应该捕捉到它

double[][] x = new double[180][1];
double[][] y = new double[180][0];
这个太小了。你可能需要

double[][] x = new double[180][2];
double[][] y = new double[180][1];
任何编写此代码的开发人员都应该立即被解雇

永远不要捕获异常,但要执行正确和特定的错误处理。捕获要处理的最精确错误,例如FileNotFoundException,避免捕获您不知道如何处理的错误。如果有疑问,请重新显示错误,以便外部错误处理程序可以处理它。始终记录错误,除非预期会发生错误

然后您将得到更精确的错误消息。但您选择忽略实际错误e

真正阅读Java书籍或教程,特别是关于正确异常处理的部分。你放弃了你一直做的错误,这让你的生活变得困难

例外情况几乎永远都不应该被忽略。你被要求处理它们是有原因的!事实上,也有未检查的异常,您不需要这样做。更明显的是,在这里,你需要正确处理它们

您的错误很可能是一个BoundsException数组,您不应该捕捉到它

double[][] x = new double[180][1];
double[][] y = new double[180][0];
这个太小了。你可能需要

double[][] x = new double[180][2];
double[][] y = new double[180][1];

双精度[]y=新双精度[180][0]


那可能不是你想要的。第二维度是零,所以你不能在数组中放入任何东西。第二个维度必须至少为1

double[]y=新的double[180][0]



那可能不是你想要的。第二维度是零,所以你不能在数组中放入任何东西。第二个维度必须至少为1

如果它正在抛出异常,那么异常是什么?为什么y的维度为零?请粘贴StackTrace例外情况是无法读取目标文件。因为我要把y变换成矩阵Jamalib@RakeshKR什么是StackTrace?@user3065339检查:-如果它正在引发异常,那么异常是什么?为什么y的维度为零?请粘贴StackTrace例外情况是无法读取目标文件。因为我要把y变换成矩阵Jamalib@RakeshKR什么是StackTrace?@user3065339检查:-你的意思是在项目文件夹内??但是,它仍然无法读取。As@Roger罗兰指出,为什么你们的y列的大小是0?您是否正在获取ArrayIndexOutOfBoundsException?因为我认为数组的第一个索引是0。好的,正如@Anony Mouse所建议的,请仔细阅读一本好的java教程。java中会有很多错误处理,所以您自己编写代码时不应该犯任何错误。对不起。我是Java新手,我还在学习。我不知道这样的事情。你是说在项目文件夹里??但是,它仍然无法读取。As@Roger罗兰指出,为什么你们的y列的大小是0?你有没有从边界感觉中获得ArrayIndex?因为我认为
数组的dex是0。好的,正如@anonymousse所建议的,请仔细阅读一篇好的java教程。java中会有很多错误处理,所以您自己编写代码时不应该犯任何错误。对不起。我是Java新手,我还在学习。我不知道那样的事。