【问题标题】:how to save a hashmap and an image to the same file如何将哈希图和图像保存到同一个文件
【发布时间】:2015-07-19 03:55:18
【问题描述】:

我想知道如何将 HashMap(String, List(Object)) 保存和加载到文件中。Object 类如下所示:

public class FlashCard implements Serializable{
private String question;
private Picture picture;
private ArrayList<String> answers = new ArrayList<>();
private ArrayList<Picture> pictures = new ArrayList<>();

    public FlashCard(){
    }

    // Method should set a list of answers
    public void setAnswers(ArrayList<String> answers){
        this.answers = answers;
    }

    // Method should add an answer to a list of answers
    public void setAnswer(String answer){
    answers.add(answer);
}

    // Method should set a list of answers
    public void setPictures(ArrayList<Picture> pictures){
        this.pictures = pictures;
    }

     // Method should add an answer to a list of answers
public void setPicture(Picture picture){
    pictures.add(picture);
}


public void setQuestion(String question){
    this.question = question;
}

public ArrayList<String> getAnswers(){
    return answers;
}

public ArrayList<Picture> getPictures(){
    return pictures;
}

public String getQuestion(){
    return question;
}
}

图片类从任何图片格式转换为 BufferedImage 图像。我读到 BufferedImage 类不可序列化。这是否意味着我不能将它们都保存到同一个文件中?谢谢。

【问题讨论】:

    标签: java image serialization hashmap


    【解决方案1】:

    您应该能够扩展BufferedImage 并让该类实现Serializable。像这样的:

    public class SerializableImage extends BufferedImage implements Serializable{
    ...
    }
    

    然后使用SerializableImage 代替BufferedImage,你应该很高兴!

    【讨论】:

    • 如果我在它周围加上一个包装器,比如 public class Picture 实现 Serializable{ private String filename;私有 BufferedImage 图像;这种方法行得通吗?
    • 不,因为为了使一个类可序列化,它的所有类变量也必须是可序列化的。
    猜你喜欢
    • 2011-02-24
    • 2013-06-24
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多