读取文本文件并对所含二维数组的所有元素进行相加

编程读取一个文本文件,已知该文本文件的格式如下:第一行是两个正整数M和N,以空格分隔,接下来该文本文件有M行,每一行都有N个正整数,相邻的两个正整数之间以空格进行分隔,要求输出该文本文件后面M行的所有正整数的和。样例文本文件如下图所示:

img

该文本文件的第一行是2和3,表明接下来将有2行正整数,每一行都有3个正整数,程序将输出30(7+8+9+2+3+1)。注意:上图给出的只是一个样例,你编写的程序应该对所有符合格式要求的文本文件都能输出正确的结果。

目前自己敲的创建二维数组以及读取txt文本文件如下,请问要如何将这两个结合在一起:

img

逐行读取文件,用空格拆分,然后进行运算。代码修改如下:


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Test2 {
    
    
    public static void readfile(){
        int i=0;
        int sum = 0; //和
        FileReader fileReader = null;
        BufferedReader bufferedReader = null;

        try {
            //创建文件输入流
            fileReader = new FileReader("C:\\Users\\mjisye\\Desktop\\test.txt");
            //创建文件缓冲流
            bufferedReader = new BufferedReader(fileReader);
            String str;
            str = bufferedReader.readLine();
            
            String[] smn = str.split(" ");//空格拆分
            if(smn.length != 2)
                return ;
            int m = Integer.parseInt(smn[0]);
            int n = Integer.parseInt(smn[1]);
            int[][] arr = new int[m][n];
            //循环每次读取一行
            while ((str = bufferedReader.readLine()) != null){
                String[] data = str.split(" "); //空格分隔
                if(data.length == n){
                    for(int j = 0;j<n;j++)
                    {
                        arr[i][j] = Integer.parseInt(data[j]);
                        sum += arr[i][j];
                    }
                    i++;
                }
            }
           
            System.out.println(sum); //输出和
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(bufferedReader != null){
                    bufferedReader.close();
                }
                if(fileReader != null){
                    fileReader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        readfile();//调用函数输出
        
    }

}


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632