HashMap<String, Bitmap> 형식을 FileOutputStream 을통해 저장할수는 없을까요?
제가 이미지로 된 교제를 열면 그 위에 그림판 기능을 넣은 앱을 만들고있습니다.
이미지가 여러장이다 보니 HashMap<String, Bitmap> 를 통해서 String에는 페이지숫자를 넣고 Bitmap에는 판서한 내용을 담구요
그리고 저장하기를 누르면
try {
FileOutputStream fos = openFileOutput("TestSampleData1.dat",
Context.MODE_WORLD_WRITEABLE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
board.savepage(Now_page);//현재 페이지 내용을 HashMap<String, Bitmap> hm에 저장하는 함수
oos.writeObject(board.hm);//
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
Log.e("저장실패:", e.getMessage());
}
이 소스를 통하여 .dat 파일로 저장하고 다시 이파일을 불러오려고 합니다.
불러오기
try {// 파일에서 읽어오기 위한 스트림 객체 얻어오기(경로는 써주지 않아도 된다, 약속된 위치가 있기 때문)
FileInputStream fis = openFileInput("TestSampleData1.dat");
// 객체를 읽어들이기 위해서 objectInputStream으로 감싼다
ObjectInputStream ois = new ObjectInputStream(fis);
// 객체를 읽어와서 원래 데이터 형태로 형변환한다.
HashMap<String, Bitmap> readedObject = (HashMap<String, Bitmap>) ois
.readObject();.
board.hm = readedObject;
board.pages(Now_page);//현재 화면에 뿌려주는 함수
} catch (Exception e) {
Log.e("불러오기실패:", e.getMessage());
}
그런데 저장하기를 누르면
java.io.NotSerializableException: android.graphics.Bitmap
이게 뜨는데 직렬화를 해야한다고 하는데 어떻게 직렬화를 해야할지 모르겠습니다.
어떻게 해야할까요?