Java 反序列化ArrayList?
我正在尝试将序列化和反序列化添加到我的应用程序中。我已经添加了序列化,使其成为文本文件。这个问题涉及ArrayList。我正在浏览此页面:当我看到以下代码时:Java 反序列化ArrayList?,java,android,Java,Android,我正在尝试将序列化和反序列化添加到我的应用程序中。我已经添加了序列化,使其成为文本文件。这个问题涉及ArrayList。我正在浏览此页面:当我看到以下代码时: FileInputStream fis = null; ObjectInputStream in = null; try { fis = new FileInputStream(filename); in = new ObjectInputStream(fis); p = (Person
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
p = (Person) in.readObject();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(p);
}
我对这句话感到困惑:
p = (Person) in.readObject();
在创建ArrayList时,如何将此行设置为ArrayList并没有那么简单:
List<String> List = new ArrayList<String>();
List List=new ArrayList();
提前谢谢你的帮助 您是否已将整个ArrayList作为对象写入文件中?
或者您是否在文件的循环中编写了位于ArrayList中的
Persons
对象?我直接从您提供链接的网站获取代码,并为ArrayList进行了修改。您提到“当创建ArrayList没有那么简单时,如何将这一行设置为ArrayList”,我说创建ArrayList就这么简单
public static void main(String[] args) {
String filename = "c:\\time.ser";
ArrayList<String> p = new ArrayList<String>();
p.add("String1");
p.add("String2");
// Save the object to file
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(filename);
out = new ObjectOutputStream(fos);
out.writeObject(p);
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
// Read the object from file
// Save the object to file
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
p = (ArrayList<String>) in.readObject();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(p);
}
publicstaticvoidmain(字符串[]args){
String filename=“c:\\time.ser”;
ArrayList p=新的ArrayList();
p、 添加(“第1条”);
p、 添加(“第2条”);
//将对象保存到文件
FileOutputStream=null;
ObjectOutputStream out=null;
试一试{
fos=新文件输出流(文件名);
out=新对象输出流(fos);
out.writeObject(p);
out.close();
}捕获(例外情况除外){
例如printStackTrace();
}
//从文件中读取对象
//将对象保存到文件
FileInputStream fis=null;
ObjectInputStream in=null;
试一试{
fis=新文件输入流(文件名);
in=新的ObjectInputStream(fis);
p=(ArrayList)在.readObject()中;
out.close();
}捕获(例外情况除外){
例如printStackTrace();
}
系统输出println(p);
}
在.readObject()中打印出[String1,String2]arrayList=(arrayList);这行吗?您可以使用Gson库将数据解析为json字符串,反之亦然。