Java读写二维数组到文件

1. 创建文件

使用了File类中的createrNewFile方法。

    public static boolean createFile(String filename){
        try{
            File file = new File(filename);
            file.createNewFile();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

查阅文档可知,若文件不存在,就创建新的文件,返回true,若文件已经存在,返回false。

不过此处我们只关注有这个文件就行,别的不管,因此忽略返回值。

核心:对于io方面的类File,以及Java中的各种功能类,我们需要理解的是它如何工作,如何使用,其他的可以不必深究,我们可以先当成黑盒子用,不过,等你使用熟练了,还是得深入理解原理,这样才能成长

2. 写入二维数组到文件

读写文件的关键点

  • 打开文件
  • 读/写
  • 关闭文件!

就像你在Windows上经常操作的那样,打开,写入,保存,关闭。

用程序执行,其实是一样的,只不过Windows可视化了而已,本质一样的!

    public static boolean writeToFile(String filename, int[][] Array){
       try {
           FileWriter fileWriter = new FileWriter(filename);
           for(int arr[]:Array){
               for(int value:arr){
                   fileWriter.write(value + "\t");
               }
               fileWriter.write("\n");
              
           }
           fileWriter.close();
           return true;
       } catch (IOException e) {
           e.printStackTrace();
           return false;
       }
    }

更多细节查阅官方文档即可。

3. 读取文件并转换为二维数组

这里使用的是Scanner的读取功能,完成文件的读取,并将其存到二维数组中。

public static int[][] readFile(String filename) {
        int[][] arr = new int[4][3];

        try {
            File file = new File(filename);
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                for (int i = 0; i < arr.length; i++) {
                    String[] line = scanner.nextLine().split("\t");
                    for (int j = 0; j < line.length; j++) {
                        arr[i][j] = Integer.parseInt(line[j]);
                    }
                }

            }

            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        return arr;
    }

此处,需要注意,这里是行列已知,如果未知,需要使用动态二维数组来完成读取。

此外,它读取的是字节,如果想要快一点,或许你可以试试加个Buffer!


版权声明:本文为weixin_42929607原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。