java - twitter4j 可序列化正在保存但未加载

标签 java serialization deserialization twitter4j

我想通过首先将它保存到 tweet.ser 文件然后使用 load() 方法来检索它来保存和加载我的推特提要。但是我收到一个错误:“线程“主”中的异常 java.lang.ClassCastException:twitter4j.ResponseListImpl 无法转换为 [Ltwitter4j.Status; 在 com.teamtreehouse.RealTreets.load(RealTreets.java:25) 在 Example.main(Example.java:12)"

这是我的代码:

import java.io.*;
import java.util.List;
import twitter4j.Status;

public class RealTreets{
    public static void save(List<Status> status){
        try(
            FileOutputStream fos = new FileOutputStream("tweets.ser");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
        ) {
            oos.writeObject(status);
        }catch(IOException ioe) {
            System.out.println("Problem saving Tweets");
            ioe.printStackTrace();
        }
    }
    public static Status[] load(){
        Status[] status = new Status[0];
        try(
            FileInputStream fis = new FileInputStream("tweets.ser");
            ObjectInputStream ois = new ObjectInputStream(fis);
        ){
            status = (Status[]) ois.readObject();
        } catch(IOException ioe){
            System.out.println("Error reading file!");
            ioe.printStackTrace();
        } catch(ClassNotFoundException cnfe){
            System.out.println("Error loading treets.");
            cnfe.printStackTrace();
        }
        return status;
    }
}

而且我已经检查过...保存工作正常。 tweets.ser 正在显示数据。 load() 方法中存在问题。

最佳答案

您正在保存 List<Status>到一个文件,但随后试图将其读取为 Status[] .这些不是一回事,因此失败。

您需要更改保存方式或阅读方式,以便它们彼此一致。

关于java - twitter4j 可序列化正在保存但未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025872/

相关文章:

Java随机设置两个变量,然后设置第三个变量

json - gson flat json 到嵌套对象需要序列化器/反序列化器吗?

c# - 我可以在属性中指定路径以将类中的属性映射到 JSON 中的子属性吗?

Java-检查表中的数据集是否已经存在

java - 设置 JScrollPane 的恒定大小

java - JAVA中如何去除字符串中的转义字符

python - 如何在 django 序列化器 SlugRelatedField 中获取反向关系

ios - Swift - 嵌套对象的 JSON 序列化

json - htmlBody swift 的 json 格式错误

c# - 是否有任何工具可以从 xml 自动生成 C# 类?