- 증상하드웨어 리셋 이후에 저장된 파일이 날아간다.
- 상세 내용: FileOutputStream을 write후 close해서 DDMS의 File Explorer에 해당 파일이 나타났는데도 하드웨어 리셋을 하면 파일 크기가 0이 되거나 파일이 없어진다.
- 원인: 파일시스템은 버퍼를 활용하고 있다. 버퍼링된 내용이 물리 파일에 씌여지기 전에 하드웨어 리셋이 되기 때문이다.
- 해결책: FileOutputStream객체의 getFD()를 통해 전달받는 FileDescriptor객체를 이용하여 sync() 를 호출하여, 물리파일에 씌여지는 시기를 강제화 한다.
- sync()사용 시의 문제점
- 전화 중과 같은 상황에 sync가 호출 되면 속도가 느려질 수 있다.
- 참고 링크
- Saving Data Safely
2012년 11월 19일 월요일
하드웨어 리셋 이후에 저장된 파일이 날아간다.
피드 구독하기:
글 (Atom)
