当前位置: 代码迷 >> J2SE >> 将数组序列化写入文件后,为什么不能正确读出?该怎么解决
  详细解决方案

将数组序列化写入文件后,为什么不能正确读出?该怎么解决

热度:132   发布时间:2016-04-24 01:56:44.0
将数组序列化写入文件后,为什么不能正确读出?
public static class AA implements Serializable {
  int CRF[] = new int[200];
  }

用AA内的数组作数据保存,写入文件后,为什么不能正确读出结果?有没有人遇到这样的问题?

------解决方案--------------------
同意9楼
调用方法传递的只是一个引用,对对象引用参数的赋值没有意义
代码改如下
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.io.Serializable; 

public class crtt { 
static AA aa = new AA() ;
public static class AA implements Serializable { 
int CRF[] = new int[200]; 


public static void wrf(String fpw) { 
try { 
FileOutputStream fos = new FileOutputStream(fpw); 
ObjectOutputStream out = new ObjectOutputStream(fos); 
//AA a = new AA(); 
out.writeObject(aa); 
} catch (IOException e) { 
e.printStackTrace(); 



public static void rdf(String fpr) { 
try { 
FileInputStream fis = new FileInputStream(fpr); 
ObjectInputStream in = new ObjectInputStream(fis); 
aa= (AA) in.readObject(); 
} catch (IOException e) { 
crtt.wrf(fpr); 
} catch (ClassNotFoundException e) { 
crtt.wrf(fpr); 




public static void main(String[] args) { 
String fp1 = "CS.txt"; 

crtt.wrf(fp1); 
System.out.println(aa.CRF[1]);
aa.CRF[1] = 1;
aa.CRF[2] = 1; 
crtt.wrf(fp1); 
crtt.rdf(fp1); 
System.out.println(aa.CRF[1]);
System.out.println(aa.CRF[2]);


netbeans运行正确
  相关解决方案