这里涉及到的有两种需求,分别是读取assets下的数据库文件,另一个是读取assets下的图片。
1) 读取assets下的数据库文件
public class SQLdm {
String filePath = "data/data/tongchuang.com.test/databases/test.db";
String pathStr = "data/data/tongchuang.com.test/databases";
SQLiteDatabase database;
public SQLiteDatabase openDatabase(Context context){
System.out.println("filePath:"+filePath);
File jhPath=new File(filePath);
if(jhPath.exists()){
return SQLiteDatabase.openOrCreateDatabase(jhPath, null);
}else{
File path=new File(pathStr);
if (path.mkdir()){
}else{
};
try {
InputStream is=context.getClass().getClassLoader().getResourceAsStream("assets/"+"test.db");
FileOutputStream fos=new FileOutputStream(jhPath);
byte[] buffer=new byte[10240];
int count = 0;
while((count = is.read(buffer))>0){
fos.write(buffer,0,count);
}
fos.flush();
fos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return openDatabase(context);
}
}
}
读取assets下的数据库文件,实现的最终的目的就是当当前assets下的数据库中的数据读取到sd卡下的databases文件夹下并创建名字与assets下的数据库名字完全相同的数据库文件。
关键还是如何真正的读取到assets文件夹下的数据库文件。