Asset에 있는 파일은 Apk에 저장하기 때문에 읽기만 가능하다.
그렇기 때문에 read/write를 해야한다면 앱 폴더로 복사해서 사용하여야 한다.
다음은 Asset의 파일을 database 폴더로 복사하는 예제 코드이다.
public void copyDbFromAssets( Context _context ){ File dbFile = _context.getDatabasePath( DB_NAME ); if( dbFile == null ) return; AssetManager assetManager = _context.getResources().getAssets(); if( !dbFile.getParentFile().exists() ) dbFile.getParentFile().mkdir(); if( dbFile.exists() ) dbFile.delete(); try { dbFile.createNewFile(); InputStream is = assetManager.open(DB_NAME, AssetManager.ACCESS_BUFFER); FileOutputStream fo = new FileOutputStream(dbFile); byte [] tempdata = new byte[2048]; int readLen = 0; while( readLen != -1 ){ readLen = is.read(tempdata); fo.write(tempdata); } is.close(); fo.close(); } catch (IOException e) { e.printStackTrace(); } }
댓글 없음:
댓글 쓰기