2015-07-19 41 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

相關問題