안드로이드 개발 질문/답변
(글 수 45,052)
SD카드에 있는 파일 목록중 하나를 선택하여 FTP 서버 에 업로드하는 소스입니다.
FileInputStream fis =new FileInputStream(newFile.getAbsolutePath());
InputStreamReader in =new InputStreamReader(fis);
BufferedReader reader =new BufferedReader(in);
String strLine =null;
StringBuffer sBuffer =new StringBuffer();
while((strLine=reader.readLine())!=null){
sBuffer.append(strLine+"\n");
}
파일의 크기가 2MByte 이하일 경우 딱히 오류가 생기질 않으나,
파일의 크기가 3MByte 이상일 경우에는 exception OutOfMemoryError
ReadWriteHeapByteBuffer 이라는 오류 메시지가 출력되면서 멈춰버립니다.
ReadWriteHeapByteBuffer 이라는 오류 메시지가 출력되면서 멈춰버립니다.
설치되어있는 JRE VM Argument 에 여러 값을 변경하여 주어도 오류가 납니다.
해결방안이 있는지요?




작성하신 코드는.. 파일사이즈가 작을때는 문제가 없을테지만, 사이즈가 커지면 문제가 발생합니다.
힙을 늘려서 해결하는데는 한계가 있습니다.
전체을 읽어들인 후 한번에 저장하는방식을 바꿔야 합니다.
조금씩 읽어서 조금씩 저장하는 형태로... 예를들자면 8 KB, 256 KB 등의 단위로하면 좋겠지요.