private void CopyRawResToSdcard(Context context, String sFilePath, String sFileName)
{
byte buffer[] = new byte[1024];
int nByteRead = 0;
InputStream isFile = context.getResources().openRawResource(R.id.ko_kr);
try
{
File fp = new File(sFilePath, sFileName);
if( fp.exists() == false || !(fp.length() >0) )
{
FileOutputStream fo = new FileOutputStream(sFilePath+sFileName);
while( (nByteRead=isFile.read(buffer)) > 0 ) {
fo.write(buffer, 0, nByteRead);
}
isFile.close();
fo.close();
}
}
catch(Exception e) {
e.printStackTrace();
}
}
*4MB 정도의 ko_kr.res 파일을 sdcard의 특정 폴더로 복사할 수 있는 방법을 알 수 있을까요?
이클립스-프로젝트 페키지의- [res]-[raw] 폴더안에 ko_ko.res (4MB 조금 넘음) 파일을 넣어 놓고,
런타임시 sdcard의 특정 폴더에 ko_kr.res 파일을 복사해 놓으려는 코드를 테스트 했는데요.
while( (nByteRead=isFile.read(buffer)) > 0 ) { <-- isFile.read(buffer) 이 부분에서 아래와 같은 IOException 에러가 납니다.
헌데. 1mb 이하의 파일을 read 할때는 이상없이 읽고, 해당 경로에 파일이 복사 생성 됩니다.
01-05 03:24:58.251: WARN/System.err(7905): java.io.IOException
01-05 03:24:58.431: WARN/System.err(7905): at android.content.res.AssetManager.readAsset(Native Method)
01-05 03:24:58.431: WARN/System.err(7905): at android.content.res.AssetManager.access$700(AssetManager.java:36)
01-05 03:24:58.431: WARN/System.err(7905): at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:571)




ko_ko.res 파일을 1M 단위로 나눈다음, sd카드에 복사할 때 붙이면 될 것 같습니다.