Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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/202.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 android应用程序中的序列化和反序列化_Java_Android_Serialization_Save_Deserialization - Fatal编程技术网

Java android应用程序中的序列化和反序列化

Java android应用程序中的序列化和反序列化,java,android,serialization,save,deserialization,Java,Android,Serialization,Save,Deserialization,我正在为一位同事编写一个Android应用程序,用于跟踪注册足球联赛的孩子。我目前在保存/序列化我的花名册,然后在以后反序列化时遇到问题。我序列化的对象是一个播放器对象数组。自定义播放器类实现了serializable,因此它们的数组应该可以序列化(据我所知) 我的序列化/保存方法: String ser = SerializeObject.objectToString(currentRoster.getRosterArray()); if (ser != null &&

我正在为一位同事编写一个Android应用程序,用于跟踪注册足球联赛的孩子。我目前在保存/序列化我的花名册,然后在以后反序列化时遇到问题。我序列化的对象是一个播放器对象数组。自定义播放器类实现了serializable,因此它们的数组应该可以序列化(据我所知)

我的序列化/保存方法:

    String ser = SerializeObject.objectToString(currentRoster.getRosterArray());
    if (ser != null && !ser.equalsIgnoreCase("")) {
        SerializeObject.WriteSettings(this, ser, "playerRoster");  //.dat extension
    } else {
        System.out.println("Object not saved");
        SerializeObject.WriteSettings(this, "", "playerRoster");
    }   
我的反序列化方法:

    String ser = SerializeObject.ReadSettings(this, "playerRoster");
    if (ser != null && !ser.equalsIgnoreCase("")) {
        Object obj = SerializeObject.stringToObject(ser);
        // Then cast it to your object and 
        if (obj instanceof Player[]) {
            // Do something
            loadedRoster = (Player[]) obj;
            System.out.println(loadedRoster[0]);
        }
    }
当反序列化时,我在我的应用程序中得到的结果是数组中每个玩家的行话。 我的问题是,我是否正确地保存和加载了数据,还是忘记了什么。(我省略了一些填充代码和异常处理,以保持其更清晰)
谢谢你的帮助

当面临(反)序列化或(反)编组问题时,我转向(反)序列化json或xml。我试过了,但没有得到我想要的结果,特别是我的xml。Jackson喜欢为XML设置名称空间(默认为“”),而我需要的是没有名称空间的名称空间。除此之外,它非常棒,没有依赖性,并且它将处理格式良好的XML和JSON,这与和不同


当阅读关于使用上述任何一种方法的文章时,通过或阅读任何东西都不会出错。您可以找到关于JAXB的一般教程。对于使用MOXy作为JAXB提供程序,显示了所有必要的代码和指向(反)序列化/(反)封送对象所需的任何其他内容的链接

您确定在将文件名提供为“playerRoster”时读取了序列化数据吗。。。尝试添加文件扩展名。。。比如“playerRoster.dat”。。。我从来没有尝试过SerializeObject,我总是手动序列化,所以我自己也不知道这项技术,只是尝试了一下,我得到了相同的结果。这是为每个玩家显示的内容:[Lcom.example.soccersignup.player;@420dc7a8现在我很困惑,如果所有玩家的结果都一样(包括最后的哈希代码),那么你的数组用相同的hashCode保存同一个player对象的重复值,这意味着你的问题不是序列化或反序列化你的对象!!!还有更多的代码吗,恐怕我现在要说了,但是可能更多的代码对任何试图帮助你的人都有帮助(或者可能我错了)我已经测试了所有其他生成玩家数组和操纵玩家数组的代码。它在序列化和反序列化时都不会抛出异常。我明天醒来时会再次查看它。感谢您不顾一切地尝试。我明天会查看,看看是否有帮助。