首页 > 解决方案 > 线程“主”java.lang.ClassCastException 中的异常

问题描述

import java.io.*;

class rak implements Serializable{

    int i;
}

public class Main {

    public static void main(String[] args) throws Exception {
        // write your code herer
        rak r = new rak();
        r.i = 9;

        File f = new File("da.txt");
        FileOutputStream f1 = new FileOutputStream(f);
        ObjectOutputStream oos = new ObjectOutputStream(f1);
        oos.writeObject("value of  i is" + r.i);

        FileInputStream f0 = new FileInputStream(f);
        ObjectInputStream f9 = new ObjectInputStream(f0);
        rak r1 = new rak();
        r1 = (rak) f9.readObject();

        System.out.println(r1.i);

    }
}

标签: java

解决方案


你序列化一个String

rak r = new rak();
...
oos.writeObject("value of  i is" + r.i);

然后将反序列化结果转换为rak对象:

r1 = (rak) f9.readObject();

ClassCastException: aString不是rak.

如果要反序列化 a rak,请序列化它,而不仅仅是它的一个字段,例如:

oos.writeObject(r);

推荐阅读