Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用for循环将数字行从文件读取到二维数组_Java_Arrays_Multidimensional Array_Integer - Fatal编程技术网

Java 使用for循环将数字行从文件读取到二维数组

Java 使用for循环将数字行从文件读取到二维数组,java,arrays,multidimensional-array,integer,Java,Arrays,Multidimensional Array,Integer,我想从文件中读取一行行数字。代码如下所示,但IDE显示NullPointerException运行时异常。不知道我做错了什么 //将文件内容读入数组 公共静态void readAndStoreNumbers(){ //初始化新对象 arr=新整数[15][]; 试一试{ //创建文件读取器 文件f=新文件(“E:\\Eclipse Projects\\triangle.txt”); BufferedReader br=新的BufferedReader(新文件读取器(f)); //从文件中读取 字

我想从文件中读取一行行数字。代码如下所示,但IDE显示
NullPointerException
运行时异常。不知道我做错了什么

//将文件内容读入数组
公共静态void readAndStoreNumbers(){
//初始化新对象
arr=新整数[15][];
试一试{
//创建文件读取器
文件f=新文件(“E:\\Eclipse Projects\\triangle.txt”);
BufferedReader br=新的BufferedReader(新文件读取器(f));
//从文件中读取
字符串nums;
int指数=0;
而((nums=br.readLine())!=null){
字符串[]数字=nums.split(“”);
//将数字转换为整数后存储到“arr”中
对于(int i=0;i
您的
arr
的第二维度未初始化,您正在调用

arr[index].length

您的
arr
的第二个维度未初始化,您正在调用

arr[index].length

我认为您应该使用
StringBuilder

//将文件内容读入数组
公共静态void readAndStoreNumbers(){
//初始化StringBuffer
StringBuilder sb=新的StringBuilder();
试一试{
//创建文件读取器
文件f=新文件(“E:\\Eclipse Projects\\triangle.txt”);
BufferedReader br=新的BufferedReader(新文件读取器(f));
//从文件中读取
字符串nums;
int指数=0;
而((nums=br.readLine())!=null){
字符串[]数字=nums.split(“”);
//将数字转换为整数后存储到“arr”中
对于(int i=0;i
我认为您应该使用
StringBuilder

//将文件内容读入数组
公共静态void readAndStoreNumbers(){
//初始化StringBuffer
StringBuilder sb=新的StringBuilder();
试一试{
//创建文件读取器
文件f=新文件(“E:\\Eclipse Projects\\triangle.txt”);
BufferedReader br=新的BufferedReader(新文件读取器(f));
//从文件中读取
字符串nums;
int指数=0;
而((nums=br.readLine())!=null){
字符串[]数字=nums.split(“”);
//将数字转换为整数后存储到“arr”中
对于(int i=0;i
您需要更改-

for(inti=0;i您需要更改-


对于(inti=0;i您可能会遇到NPEX,原因有二

  • 您没有完成对
    arr
    的定义-您在代码中声明
    arr
    int-arr[][]
    ,这一点并不明显

  • 即使你有了上面的元素,你也不会为你的第二个数组留出空间。你现在拥有的是;你可以在你的第二个数组中拥有你想要的第二维度中任意长度的元素

    我对您的代码所做的唯一修改是使其工作如下:

    arr[index] = new int[numbers.length];
    
    …将元素拉入
    编号
    后,进入循环前


  • 你可能会因为两个原因遇到NPEX

  • 您没有完成对
    arr
    的定义-您在代码中声明
    arr
    int-arr[][]
    ,这一点并不明显

  • 即使你有了上面的元素,你也不会为你的第二个数组留出空间。你现在拥有的是;你可以在你的第二个数组中拥有你想要的第二维度中任意长度的元素

    我对您的代码所做的唯一修改是使其工作如下:

    arr[index] = new int[numbers.length];
    
    …将元素拉入
    编号
    后,进入循环前


  • Java没有真正的多维数组。您使用的实际上是一个int数组数组:
    newint[n][
    实际上创建了一个数组,其中包含
    n
    类型的
    int[]
    对象的空间


    因此,您必须分别初始化这些
    int
    数组。这一点很明显,因为您从未在程序中的任何位置指定过第二维度的长度。

    Java没有真正的多维数组。您使用的实际上是一个int数组数组:
    new int[n][]
    实际上为
    n
    类型的
    int[]
    对象创建了一个具有空间的数组


    因此,您必须分别初始化这些
    int
    数组中的每一个。这一点很明显,因为您从来没有在程序中的任何地方指定过第二维度的长度。

    哪一行显示nullpointerexception?我宁愿给我们一个简单的
    列表
    ,其中包含dex是行号,值是整数。哪一行显示nullpointerexception?我希望我们使用一个简单的
    列表
    ,其中索引是行号,值是整数。