java里面怎样将稀疏数组保存到磁盘上,然后在从磁盘上恢复
时间: 2023-12-19 07:07:32 浏览: 46
在 Java 中,可以使用对象序列化将稀疏数组保存到磁盘上,并在需要时从磁盘上恢复。
以下是一个简单的示例代码,可以将稀疏数组保存到磁盘上,并从磁盘上恢复:
```java
import java.io.*;
public class SparseArray implements Serializable {
private int[][] arr;
private int rows;
private int cols;
public SparseArray(int[][] arr) {
this.arr = arr;
this.rows = arr.length;
this.cols = arr[0].length;
}
public void saveToFile(String filePath) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath));
oos.writeObject(this);
oos.close();
}
public static SparseArray loadFromFile(String filePath) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath));
SparseArray sparseArray = (SparseArray) ois.readObject();
ois.close();
return sparseArray;
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
int[][] arr = {{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}};
SparseArray sparseArray = new SparseArray(arr);
sparseArray.saveToFile("sparse_array.bin");
SparseArray loadedSparseArray = SparseArray.loadFromFile("sparse_array.bin");
System.out.println(loadedSparseArray.rows); // 输出:5
System.out.println(loadedSparseArray.cols); // 输出:5
System.out.println(loadedSparseArray.arr[2][2]); // 输出:1
}
}
```
在上述代码中,我们定义了一个 `SparseArray` 类来表示稀疏数组,使用了 Java 内置的序列化机制来将稀疏数组保存到磁盘上,并从磁盘上恢复。在 `saveToFile` 方法中,我们使用 `ObjectOutputStream` 将对象序列化并写入到文件中;在 `loadFromFile` 方法中,我们使用 `ObjectInputStream` 从文件中读取序列化后的对象并反序列化成稀疏数组对象。在 `main` 方法中,我们演示了将稀疏数组保存到磁盘上,并从磁盘上恢复的过程。