java 序列化数组_java – 序列化包含数组和int的对象

所以我一直在尝试实现一种方法来保存我的文件中的一些对象,以便我可以减少每个运行时间填充变量的需要,这可能需要花费超过20分钟.我目前正在使用一个名为Raster的对象,它可以使用类型File填充,用于将数据拉入字段.我想知道我将如何序列化以下内容.

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

{

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];

}

}

我已经看了一些其他的例子,但它们似乎都非常特定于除了对象内部的数组之外的其他类型的数据,所以我希望有人能够解释一种我可能能够序列化它的方式.

附:

我编辑了代码以更好地解释我的问题,因为它sems它不够清楚.当使用序列化这个类时,它会出现如下错误:

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.(Unknown Source)

当我运行我看起来像这样的代码

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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值