안녕하세요.

 

게임 개발해서 서비스 하고 있는 중인데요.

 

게임 내 세이브와 로드를 BufferedInputStream과 BufferedOutputStream를 이용하여 하고 있습니다.

 

최근 업데이트에서 BufferedInputStream과 BufferedOutputStream를 생성할 때 사이즈를 줘서 생성하게 바꿨는데 이부분이 문제가 될수 있을까요?

 

BufferedInputStream bis = new BufferedInputStream(fis);

에서

BufferedInputStream bis = new BufferedInputStream(fis, 8192);

로 변경

 

BufferedOutputStream bos = new BufferedOutputStream(fos);

에서

BufferedOutputStream bos = new BufferedOutputStream(fos, 8192);

로 변경

 

http://developer.android.com/reference/java/io/BufferedInputStream.html

위사이트에서 봐도 size를 생략 했을 경우에 기본으로 8192를 지정해준다고 설명되있는데 최근 위와 같이 변경후 유저들 문의 중 데이터저장과 관련하여 생길만한 내용이 있어서 걱정이 되네요.

 

제가 테스트 하였을때 문제가 없었는데 폰이 워낙 많은지라 다른 특이한 환경의 폰에서는 기본 사이즈가 8192가 아니고 다른 사이즈였는데 이번 업데이트에서 8192로 고정하여서 생기는 문제인가도 걱정이 됩니다.

 

위에 변경점이 문제가 될 케이스는

1. 특정 기기에서는 BufferedInputStream(fis);, BufferedOutputStream(fos); 같이 코딩할 경우 버퍼 사이즈가 8192가 아닌 더 작거나 크게 설정되서 데이터가 저장되고 불러와져 있는 상태였다.

그런데 이번 업데이트로 8192 고정하면서 기존 데이터가 꼬였다.

 

변경하였을때 당시 문서에도 코드로 따로 고정안해도 기본이 8192였기 때문에 문제 없겠구나 싶었는데, 업데이트후 유저 문의 메일 하나 받으니 마음이 많이 불안하네요.

 

사이즈 변경에 대한 충분한 검증이 안되고 적용한게 아닌가 하는 생각도 들고....

 

세이브 파일에 문제가 생겨서 기존데이터가 꼬이거나 문제 되는 경우가 제일 일어나서는 안되는 상황인데ㅜㅜ

 

BufferedInputStream, BufferedOutputStream를 기존에 사이즈 지정안하다가 지정하게 되면 문제가 생길 수 있을까요?

 

많은 의견 부탁드려요~

 

ps.

발단은 디버깅 도중 수없이 뜨는 경고 메세지였고 그것때문에 검색해보고 아래 사이트를 발견하고 수정하였네요.

http://stackoverflow.com/questions/3498643/dalvik-message-default-buffer-size-used-in-bufferedinputstream-constructor-it