gpt4 book ai didi

java - 将二维数组(字符串)存储到文件中并检索它

转载 作者:行者123 更新时间:2023-11-29 05:11:02 25 4
gpt4 key购买 nike

我制作了一个简单的程序,它有一个存储大量数据的二维字符串数组。我已经搜索了很多地方来了解如何存储和检索二维数组。我想在程序结束时将数据保存在我的数组中,并在程序开始时检索这些数据。我努力了: ObjectOutputStream toFile = new ObjectOutputStream(new FileWriter("array.DATA"));
toFile.writeObject(array);
出现错误:类型不兼容:FileWriter 无法转换为 OutputStream

我只懂基本的编程,所以尽量对我放轻松,并彻底解释你所说的一切。老实说,我什至不知道“ObjectOutputStream”是什么。

提前致谢

最佳答案

在这个例子中: 这个例子非常简单(它不是一个完美的解决方案,但它是了解保存和检索如何工作的一个好的开始)。

你的二维数组是 int a[][]= new int[12][12];

//或者a是String a[][] = new String[12][12];

  • 第 1 部分:(保存)

    public void Save(){

    try {
    PrintWriter writer = new PrintWriter(new File("C:/Users/Alex.hp/Desktop/t.txt"));

    for(int i=0; i<a.length; i++){
    for(int j=0; j<a[i].length; j++){

    //use this if your array has (int,double..)
    // writer.write(String.valueOf(a[i][j])+" "); //Here you parse the int from array to String.


    //use this if your array has String
    writer.write(a[i][j]+" "); //Its String so you dont have to use String.valueOf(something(int,double,...)
    }
    writer.println(); //leave one line
    }

    writer.flush(); //flush the writer
    writer.close(); //close the writer



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

    }//方法结束

使用简单的 PrintWriter,您可以将数组原封不动地保存到文件中。只是你知道更改我放入文件的路径;

  • 第 2 部分:(打开时更新或检索)

    public void UpdateOnOpen(){

    try {
    Scanner scan = new Scanner(new File("C:/Users/Alex.hp/Desktop/t.txt"));

    //Retrieve
    for(int i=0; i<a.length; i++)
    for(int j=0; j<a[i].length; j++){

    //if you array use (int,double,...)
    //a[i][j]=Interger.parseInt(scan.next()) //for int
    //a[i][j]=Double.parseDouble(scan.next()) //for double

    //if your array use String
    a[i][j]=scan.next(); //Here you retrieve the array again from the file


    }//end of for(int j=0; j<a[i].length; j++)



    scan.close(); //close the resource file you opened

    //Print it to be sure all are right
    for(int i=0; i<a.length; i++){
    for(int c=0; c<a[i].length; c++)
    System.out.printf(""+a[i][c]+",");

    System.out.println();
    }

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


    }//end of method

    使用 Scanner 类,您可以从保存的文件中检索数组。

也是一个更好的解决方案,但你必须挖掘更多here

让我知道你的工作完成了..

关于java - 将二维数组(字符串)存储到文件中并检索它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com