用Java保存和加载

时间:2015-03-13 03:06:02

标签: java

我正在为这个项目上学,我有一些问题。我目前的目标是实现一个保存和加载方法。当调用save方法时,它会将2d数组保存到1d数组(它是excel电子表格的形式),当它被要求加载时,它会显示保存的电子表格。

我知道我想首先将我的2d信息数据保存到1d数组中,但是它如何知道1d数组应该有多大?我知道我应该有一个嵌套的for循环,它遍历我的2d数组的每个部分。

你们可以提供关于如何继续创建这些方法的任何提示吗?

这是我的代码的一部分:

 public class Sheet implements Savable {
public int rows;
public int cols;
Cell [][] contents;
String alph = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

public Sheet (int rows, int cols) {
    this.rows = rows;
    this.cols = cols;
    contents = new Cell [rows][cols];
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            contents[i][j] = new EmptyCell();
        }
    }
}

public String[] getSaveData() {
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {

        }
    }
    return null;
}

2 个答案:

答案 0 :(得分:0)

不确定你是指一个char的一维数组,它是一个String,还是一个String的一维数组,它是一个String []。我假设你的意思是第一个。如果行和列不会在运行期间发生更改,则无需使用数据保存它们。使用StringBuilder。

public String getSaveData() {
    StringBuilder saveData = new StringBuilder();
    for (int i = o; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            saveData.append(contents[i][j].toString());
        }
    }
    return saveData.toString();
}

答案 1 :(得分:0)

现在这是基于假设,因为没有太多有用的信息,但我假设您正在实施方法getSaveData(),它从{{1}获取数据在表单中将其保存到文件。

一些提示:

  1. 方法声明是它返回一个字符串数组 - 所以你必须在该方法中创建一个字符串数组,其大小与行数相同

  2. 您需要某种形式的分隔每个字符串中的数据,以便您可以重新读取它。常见的是逗号(除非您的单元格中有逗号)

    Lookup about CSV files

  3. 当您循环将每个单元格内容附加到带分隔符的字符串

  4. 方法的伪代码:

    Cells