思路很清晰,直接上代码:
参数说明:fileFromName:assets中的文件名
toDir :sd卡中的路径
private boolean copyFile(String fileFromName, String toDir) {
try {
InputStream its = getAssets().open(fileFromName);
int fileLength = its.available();
File book_file = new File(toDir);
if(!book_file.exists()){
book_file.createNewFile();
}
FileOutputStream fots = new FileOutputStream(book_file,true);
byte[] buffer = new byte[fileLength];
int readCount = 0; // 已经成功读取的字节的个数
while (readCount < fileLength) {
readCount += its.read(buffer, readCount, fileLength - readCount);
}
fots.write(buffer, 0, fileLength);
its.close();
fots.close();
return true;
} catch (IOException e1) {
e1.printStackTrace();
Toast.makeText(this, "失败!!!", Toast.LENGTH_SHORT).show();
return false;
}
}
还有一点很重要,要在配置文件中添加权限:
<!--在SDCard中创建与删除文件权限-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!--往SDCard写入数据权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>