/*
* 从Apk本地Assets复制文件到指定文件夹
*
*/
private boolean copyFileFromAssets() {
boolean result = false;
String filepath="data/data/包名(写错会出现没有权限的错误信息)/databases";
String fileName="*.db";
File dir = new File(filepath);
File file= new File(dir, fileName);
if (!dir.exists() || !dir.isDirectory()) {
dir.mkdir();
}
InputStream inputStream = null;
OutputStream outputStream =null;
// 检查 SQLite 数据库文件是否存在
if (!file.exists()) {
try {
file.createNewFile();
inputStream = this.getAssets().open(fileName);
outputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
outputStream.close();
inputStream.close();
result=true;
} catch (IOException e) {
e.printStackTrace();
}
}else
{
try {
file.delete();
file.createNewFile();
inputStream = this.getAssets().open(fileName);
outputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
outputStream.close();
inputStream.close();
result=true;
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
Android:从Apk本地Assets复制文件到指定文件夹
最新推荐文章于 2021-05-28 21:34:56 发布
本文介绍了一种从Android应用的Assets目录复制SQLite数据库文件到设备上的方法。该方法首先检查目标路径是否存在,并创建必要的目录;然后判断数据库文件是否已存在,如果不存在则从Assets中读取并写入到目标位置。
801

被折叠的 条评论
为什么被折叠?



