Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反序列化ArrayList?_Java_Android - Fatal编程技术网

Java 反序列化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

我正在尝试将序列化和反序列化添加到我的应用程序中。我已经添加了序列化,使其成为文本文件。这个问题涉及ArrayList。我正在浏览此页面:当我看到以下代码时:

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字符串,反之亦然。