assets中的文件都是保持原始的文件格式,需要使用AssetManager以字节流的形式读取出来
步骤:
- 1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
- 2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
- 3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
- 4.调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自assets 中的文件只可以读取而不能进行写的操作
代码:
private void copyDataBase(String baseName) {
OutputStream outputStream = null;
InputStream inputStream = null;
File file = new File(getFilesDir(), baseName);
if ( file.exists() ) {
return;
}
try {
outputStream = new FileOutputStream(file);
inputStream = getAssets().open(baseName);
int len;
byte[] buffer = new byte[1024];
while ( (len = inputStream.read(buffer)) != -1 ) {
outputStream.write(buffer, 0, len);
}
} catch ( IOException e ) {
e.printStackTrace();
} finally {
try {
inputStream.close();
outputStream.close();
} catch ( Exception e ) {
e.printStackTrace();
} }
}