안드로이드 개발 질문/답변
(글 수 45,052)
sqllite 파일 분할 문의 드려요.
http://hyeongkyu.net/110090943249 에 올라온 대로 파일 분할 프로그램 만들었는데..
실제로 돌려보면. ... 1KB씩 네개로 파일이 분할됩니다.. ㅜ
제가 만든 소스 파일 적어 놓아요.. ㅜ
파일 분할 프로그램으로 돌려도 파일은 분할이 되는데.... 실제 어플에서 분할된 것을 합치면... DB 오픈시 에러가 납니다.
이하는 작성한 자바 파일입니다.
///////////////////////////////////////////////////////////
public class FileSeparator {
public static void main(String[] args){
final String FILE_PATH="D:\\npoint.db";
final long BYTE_OF_UNIT = 1048576;
File input = new File(FILE_PATH);
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try{
fis = new FileInputStream(input);
bis = new BufferedInputStream(fis);
byte[] buf = new byte[4096];
int l = 0;
int acc = 0;
int count = 0;
while((l=bis.read(buf))>0){
if(acc%BYTE_OF_UNIT==0){
File output = new File(FILE_PATH+"."+(count++));
if(fos!=null){
bos.close();
fos.close();
}
fos = new FileOutputStream(output);
bos = new BufferedOutputStream(fos);
}
bos.write(buf,0,1);
acc+=l;
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(bos!=null)try{bos.close();}catch(Exception e){}
if(fos!=null)try{fos.close();}catch(Exception e){}
if(bis!=null)try{bis.close();}catch(Exception e){}
if(fis!=null)try{fis.close();}catch(Exception e){}
}
}
}
http://hyeongkyu.net/110090943249 에 올라온 대로 파일 분할 프로그램 만들었는데..
실제로 돌려보면. ... 1KB씩 네개로 파일이 분할됩니다.. ㅜ
제가 만든 소스 파일 적어 놓아요.. ㅜ
파일 분할 프로그램으로 돌려도 파일은 분할이 되는데.... 실제 어플에서 분할된 것을 합치면... DB 오픈시 에러가 납니다.
이하는 작성한 자바 파일입니다.
///////////////////////////////////////////////////////////
public class FileSeparator {
public static void main(String[] args){
final String FILE_PATH="D:\\npoint.db";
final long BYTE_OF_UNIT = 1048576;
File input = new File(FILE_PATH);
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try{
fis = new FileInputStream(input);
bis = new BufferedInputStream(fis);
byte[] buf = new byte[4096];
int l = 0;
int acc = 0;
int count = 0;
while((l=bis.read(buf))>0){
if(acc%BYTE_OF_UNIT==0){
File output = new File(FILE_PATH+"."+(count++));
if(fos!=null){
bos.close();
fos.close();
}
fos = new FileOutputStream(output);
bos = new BufferedOutputStream(fos);
}
bos.write(buf,0,1);
acc+=l;
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(bos!=null)try{bos.close();}catch(Exception e){}
if(fos!=null)try{fos.close();}catch(Exception e){}
if(bis!=null)try{bis.close();}catch(Exception e){}
if(fis!=null)try{fis.close();}catch(Exception e){}
}
}
}
2011.01.07 19:41:07
(추천:
2 / 0)
대용량 DB 때문에 분할할려고 하나 보군요. 분할할 필요없습니다.
Asset에다가 대용량 DB를 넣을 때, 확장자를 mp4나 mp3로 바꿔서 넣고, 이를 복사해서 사용하면 됩니다. 복사할 때 확장자를 바꾸면 됩니다.



