Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 从ObjectInputStream读取序列化对象_Java_Object_Io_Serializable - Fatal编程技术网

Java 从ObjectInputStream读取序列化对象

Java 从ObjectInputStream读取序列化对象,java,object,io,serializable,Java,Object,Io,Serializable,第一次尝试从文件中读入对象时,我将如何读入我编写的文件 private static final long serialVersionUID = -4654676943759320425L; private ArrayList<ArrayList<Object>> world; private ArrayList<AFood> foods; private ArrayList<ABlock> blocks; private ArrayLis

第一次尝试从文件中读入对象时,我将如何读入我编写的文件

    private static final long serialVersionUID = -4654676943759320425L;
private ArrayList<ArrayList<Object>> world;
private ArrayList<AFood> foods;
private ArrayList<ABlock> blocks;
private ArrayList<ABug> bugs;
private String name = null;
private int lengthX = 0, lengthY = 0;
这就是我目前试图读取对象的方式

save = new FileOutputStream(worldNameAs + ".aBugsWorld");
saveBuffer = new BufferedOutputStream(save);
saveOut = new ObjectOutputStream(saveBuffer);
saveOut.writeObject(this.worldSave); // Here was the problem
我就是这样写这个文件的

显然,这是不正确的,我不知道如何读入对象,无论是必须逐个插入变量还是作为一个整体插入变量,我都不知道


编辑:我正在将流写入一个文件,而不是我的对象,这导致了问题(因为文件IO流无法转换为一个世界)

看起来还可以。只需确保您只写/只读可序列化对象,这在您的示例中并不清楚。此外,我会使流结构更简单

ObjectOutputStream out = new ObjectOutputStream(
    new BufferedOutputStream(new FileOutputStrea(file))
);

您不需要保存对中间流的引用。

看起来还可以。只需确保您只写/只读可序列化对象,这在您的示例中并不清楚。此外,我会使流结构更简单

ObjectOutputStream out = new ObjectOutputStream(
    new BufferedOutputStream(new FileOutputStrea(file))
);

您不需要保存对中间流的引用。

看起来还可以。只需确保您只写/只读可序列化对象,这在您的示例中并不清楚。此外,我会使流结构更简单

ObjectOutputStream out = new ObjectOutputStream(
    new BufferedOutputStream(new FileOutputStrea(file))
);

您不需要保存对中间流的引用。

看起来还可以。只需确保您只写/只读可序列化对象,这在您的示例中并不清楚。此外,我会使流结构更简单

ObjectOutputStream out = new ObjectOutputStream(
    new BufferedOutputStream(new FileOutputStrea(file))
);
您不需要保存对中间流的引用。

它看起来是正确的。 但有人认为,要写在文件上的类必须是可序列化的

您也可以这样做:

1.>要写入文件的类:

 class StudentRecord implements Serializable{
        String name;
        public StudentRecord(String name) {
            this.name=name;
        }  
    }
2.>写入文件

            File f=new File("xyz.txt");
            f.createNewFile();
            fo = new FileOutputStream(f);
            ObjectOutput oo=new ObjectOutputStream(fo);
            StudentRecord w=new StudentRecord("MyName");
            oo.writeObject(w);
3.>从文件中读取

        File f=new File("xyz.txt");
        fi = new FileInputStream(f);
        ObjectInputStream oi=new ObjectInputStream(fi);
        StudentRecord sr=(StudentRecord)oi.readObject();
看起来是对的。 但有人认为,要写在文件上的类必须是可序列化的

您也可以这样做:

1.>要写入文件的类:

 class StudentRecord implements Serializable{
        String name;
        public StudentRecord(String name) {
            this.name=name;
        }  
    }
2.>写入文件

            File f=new File("xyz.txt");
            f.createNewFile();
            fo = new FileOutputStream(f);
            ObjectOutput oo=new ObjectOutputStream(fo);
            StudentRecord w=new StudentRecord("MyName");
            oo.writeObject(w);
3.>从文件中读取

        File f=new File("xyz.txt");
        fi = new FileInputStream(f);
        ObjectInputStream oi=new ObjectInputStream(fi);
        StudentRecord sr=(StudentRecord)oi.readObject();
看起来是对的。 但有人认为,要写在文件上的类必须是可序列化的

您也可以这样做:

1.>要写入文件的类:

 class StudentRecord implements Serializable{
        String name;
        public StudentRecord(String name) {
            this.name=name;
        }  
    }
2.>写入文件

            File f=new File("xyz.txt");
            f.createNewFile();
            fo = new FileOutputStream(f);
            ObjectOutput oo=new ObjectOutputStream(fo);
            StudentRecord w=new StudentRecord("MyName");
            oo.writeObject(w);
3.>从文件中读取

        File f=new File("xyz.txt");
        fi = new FileInputStream(f);
        ObjectInputStream oi=new ObjectInputStream(fi);
        StudentRecord sr=(StudentRecord)oi.readObject();
看起来是对的。 但有人认为,要写在文件上的类必须是可序列化的

您也可以这样做:

1.>要写入文件的类:

 class StudentRecord implements Serializable{
        String name;
        public StudentRecord(String name) {
            this.name=name;
        }  
    }
2.>写入文件

            File f=new File("xyz.txt");
            f.createNewFile();
            fo = new FileOutputStream(f);
            ObjectOutput oo=new ObjectOutputStream(fo);
            StudentRecord w=new StudentRecord("MyName");
            oo.writeObject(w);
3.>从文件中读取

        File f=new File("xyz.txt");
        fi = new FileInputStream(f);
        ObjectInputStream oi=new ObjectInputStream(fi);
        StudentRecord sr=(StudentRecord)oi.readObject();


有一个问题,我可能应该包括在内。线程“main”java.lang中出现异常。错误:未解决的编译问题:类型不匹配:无法从对象转换为世界我以前也没有使用过serializable,不知道您在说什么。请您解释一下好吗?我试过了,当它运行时,它说它不能将对象强制转换到世界。正如我所说的,我正在将文件IO流写入导致问题的文件。有时候,最愚蠢的问题会让你困惑好几天。注意/谢谢,我确实意识到您不必参考中间流:这只是为了让我了解它是如何工作的(否则我会更加困惑!)有一个问题,我可能应该包括在内。线程“main”java.lang中出现异常。错误:未解决的编译问题:类型不匹配:无法从对象转换为世界我以前也没有使用过serializable,不知道您在说什么。请您解释一下好吗?我试过了,当它运行时,它说它不能将对象强制转换到世界。正如我所说的,我正在将文件IO流写入导致问题的文件。有时候,最愚蠢的问题会让你困惑好几天。注意/谢谢,我确实意识到您不必参考中间流:这只是为了让我了解它是如何工作的(否则我会更加困惑!)有一个问题,我可能应该包括在内。线程“main”java.lang中出现异常。错误:未解决的编译问题:类型不匹配:无法从对象转换为世界我以前也没有使用过serializable,不知道您在说什么。请您解释一下好吗?我试过了,当它运行时,它说它不能将对象强制转换到世界。正如我所说的,我正在将文件IO流写入导致问题的文件。有时候,最愚蠢的问题会让你困惑好几天。注意/谢谢,我确实意识到您不必参考中间流:这只是为了让我了解它是如何工作的(否则我会更加困惑!)有一个问题,我可能应该包括在内。线程“main”java.lang中出现异常。错误:未解决的编译问题:类型不匹配:无法从对象转换为世界我以前也没有使用过serializable,不知道您在说什么。请您解释一下好吗?我试过了,当它运行时,它说它不能将对象强制转换到世界。正如我所说的,我正在将文件IO流写入导致问题的文件。有时候,最愚蠢的问题会让你困惑好几天。注意/谢谢,我意识到您不必引用中间流:这只是为了让我能够理解它是如何工作的(否则我会更加困惑!)我正在向文件而不是我的世界写入文件IO对象!我真傻,有时候是最小的事情。虽然现在当我试图拯救世界时,它试图编写的所有变量都出现了异常“at java.io.ObjectOutputStream.writeObject0(未知源)”…并且我必须序列化世界上使用的所有其他类。我正在将一个文件io对象写入该文件,而不是我的世界!我真傻,有时候是最小的事情。虽然现在当我试图拯救世界时,它试图编写的所有变量都出现了异常“at java.io.ObjectOutputStream.WriteObject 0(未知源)”…我必须序列化世界上使用的所有其他类。我正在编写一个Fil