2015-07-19 43 views
1

我想知道如何保存和加载一个HashMap的图像(字符串,列表(对象))的文件。该对象类如下所示:如何保存一个HashMap和同一个文件

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类不可序列化。这是否意味着我无法将它们都保存到同一个文件中?谢谢。

回答

0

您应该可以扩展BufferedImage并让该类实现Serializable。事情是这样的:

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

代替BufferedImage然后使用SerializableImage,你应该是好去!

+0

如果我在它周围放置一个包装器,就像公共类图片实现了Serializable {0}私有字符串文件名; \t private BufferedImage image;这种方法会起作用吗? – corax

+0

不,因为为了让一个类可序列化,它的所有类变量也必须是可序列化的。 – MrMadsen

相关问题