繁体   English   中英

Java对象输入流readObject();

[英]Java Object input stream readObject();

我已经将对象保存到数组列表中,并将文件另存为.dat,但是当我要读取对象时,它只是显示null而不是值。

班级

public class Person implements Serializable {
  public static String Name;
  public static String Contact;

  public Person(String Name, String Contact) {
    this.Name = Name;
    this.Contact = Contact;
  }

  public String getName() {
    return Name;
  }

  public String getContact() {
    return Contact;
  }
}

编码

FileInputStream fis;
try {
  fis = new FileInputStream("Person.dat");
  ObjectInputStream ois = new ObjectInputStream(fis);
  ArrayList<Person> per = (ArrayList<Person>) ois.readObject();
  ois.close();

  per.get(0);
  Person pe = per.get(0);
  System.out.println(pe.getName());
} catch (FileNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (IOException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (ClassNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
}

您定义了未序列化的静态成员NameContact 删除static修饰符以使此工作。

non-transientnon-static字段将被序列化。

请参考oracle文档页面jusfortechies文章。

更改

public static String Name;
public static String Contact;

public String Name;
public String Contact;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM