[英]Failing to write/read file with a list of objects
我试图将对象列表保存到文件中,但是每当我尝试从文件中读取文件时,它总是失败。 有人可以告诉我我在做什么错
写给它
public void writeToFile(List<EventsClass> list)
{
String filename = "events.srl";
ObjectOutput out = null;
try
{
out = new ObjectOutputStream(new FileOutputStream(new File(getFilesDir(),"")+File.separator+filename));
out.writeObject(list);
out.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
我检查了,参数列表总是包含对象列表
从中读
public List<EventsClass> readFromFile()
{
ObjectInputStream input;
String filename = "events.srl";
try
{
input = new ObjectInputStream(new FileInputStream(new File(new File(getFilesDir(),"")+File.separator+filename)));
List<EventsClass> list = (List<EventsClass>) input.readObject();
input.close();
return list;
}
catch (IOException | ClassNotFoundException e)
{
e.printStackTrace();
return null;
}
}
它总是无法读取文件并返回null
这是EventsClass
public class EventsClass
{
private String eventName;
private String eventClass;
private String eventDate;
private int eventMonth;
private int eventDay;
public EventsClass(String eventClass, String eventName, String eventDate, int eventMonth, int eventDay)
{
this.eventClass = eventClass;
this.eventName = eventName;
this.eventDate = eventDate;
this.eventMonth = eventMonth;
this.eventDay = eventDay;
}
public void putEventData(String mClass, String name, String date, int month, int day)
{
this.eventClass = mClass;
this.eventName = name;
this.eventDate = date;
this.eventMonth = month;
this.eventDay = day;
}
public String getEventClass()
{
return eventClass;
}
public String getEventName()
{
return eventName;
}
public String getEventDate()
{
return eventDate;
}
public int getEventMonth()
{
return eventMonth;
}
public int getEventDay()
{
return eventDay;
}
}
是的,EventsClass需要可序列化才能写入存储。 如果您实现了java.io.Serializable
,那么所有这些都应该对您有效。 这是一个不错的教程,您可以了解有关Java序列化的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.