And*_*ton 5 java serialization
我一直在尝试实现一种将一些对象保存在文件中的方法,这样我就可以减少每次运行时填充变量的需要,这可能需要 20 分钟以上的时间。我目前正在使用一个名为 Raster 的对象,可以使用用于将数据拉入字段的文件类型来填充该对象。我想知道如何能够序列化以下内容。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Serializable;
public class Raster implements Serializable {
private static final long serialVersionUID = 15L;
private int col,row,NODATA;
private double [] [] Ras;
public Raster (File inData) throws IOException
{
//open file as f
BufferedReader f = new BufferedReader(new FileReader(inData));
this.col = Integer.parseInt(f.readLine().substring(5).trim());
this.row = Integer.parseInt(f.readLine().substring(5).trim());
f.readLine();
f.readLine();
f.readLine();
this.NODATA = Integer.parseInt(f.readLine().substring(12).trim());
//now the data will be added
this.Ras = new double [row] [col];
for (int r = 0 ; r <row;r ++ )
{
String[] vals = f.readLine().split(" ");
for (int c = 0 ; c < col; c ++ )
this.Ras[r][c]= Double.parseDouble(vals[c]);
}
f.close();
}
public int getRows() {
return row;
}
public int getCols() {
return col;
}
public double getData(int rowPos, int colPos) {
return Ras[rowPos][colPos];
}
}
Run Code Online (Sandbox Code Playgroud)
我看过一些其他示例,但它们似乎都特定于对象内部数组以外的其他类型的数据,因此我希望有人能够解释一种我可以序列化它的方法。
PS我已经编辑了代码以更好地解释我的问题,因为它似乎不够清楚。当使用序列化这个类时,会出现如下错误:
Exception in thread "main" java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
当我运行我的代码时,看起来像这样
if (rasPath.exists()) {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(rasPath));
Raster SqrRas = (Raster) (in).readObject();
in.close();
}
else {
Raster SqrRas = new Raster (fullPath);
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(rasPath));
out.writeObject(SqrRas);
out.close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |