安卓序列化和java序列化_Java序列化-Android反序列化

我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。

来源:java-desktop序列化

Student student=new Student();

student.setName("John");

student.setSurname("Brown");

student.setNumber(776012345);

try {

FileOutputStream fout = new FileOutputStream("thestudent.dat");

ObjectOutputStream oos = new ObjectOutputStream(fout);

oos.writeObject(student);

oos.close();

}

catch (Exception e) { e.printStackTrace(); }

}

资料来源:Android-反序列化

File file=new File(getExternalFilesDir(null), "thestudent.dat");

try {

FileInputStream fint = new FileInputStream(file);

ObjectInputStream ois = new ObjectInputStream(fint);

Student stud=(Student) ois.readObject();

ois.close();

}

catch (Exception e) { e.printStackTrace(); }

}

学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“

thestudent.dat”。我将此文件放在Android设备上的SD卡上,并且试图对其进行反序列化。我收到错误

java.lang.ClassCastException:javaserializace.Student

。但为什么?序列化时我有相同的软件包,反序列化时我有相同的软件包。所有不同的是项目名称。您看到任何解决方案了吗?

编辑-学生班级来源:

public class Student implements Serializable {

private String name;

private String surname;

private int number;

private char gender;

private int age;

private long rc;

private int id;

public Student(){

;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public char getGender() {

return gender;

}

public void setGender(char gender) {

this.gender = gender;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public long getRc() {

return rc;

}

public void setRc(long rc) {

this.rc = rc;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getNumber() {

return number;

}

public void setNumber(int number) {

this.number = number;

}

public String getSurname() {

return surname;

}

public void setSurname(String surname) {

this.surname = surname;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值