我有dat文件,它是二进制文件。它目前位于我项目的raw文件夹中。 我想在我的程序中使用该文件。 我想将其复制到设备上的某个位置,但在执行该方法时,我收到错误"无法读取数据元数据"
以下是方法:
public void copyRawOnSdCard(){
File sdcard = Environment.getExternalStorageDirectory();
String targetPath = sdcard.getAbsolutePath() + File.separator + "shape_predictor_68_face_landmarks.dat";
File file = new File(targetPath);
if (!file.exists())
{
final ProgressDialog pd; pd = ProgressDialog.show(this, "Copy Files for the First Time", "Please wait",
true);
pd.show();
InputStream in = getResources().openRawResource(
getResources().getIdentifier("shape_predictor_68_face_landmarks",
"raw", getPackageName()));
FileOutputStream out = null;
try {
out = new FileOutputStream(targetPath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
byte[] buff = new byte[1024];
int read = 0;
try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try{
in.close();
}catch (IOException e) {
e.printStackTrace();
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
pd.cancel();
}
}
想法? 感谢
答案 0 :(得分:0)
显然还有另一种实现解决方案,那就是将.dat二进制文件放在assets文件夹中。
以下是实施:
https://stackoverflow.com/questions/4447477/how-to-copy-files-from-assets-folder-to-sdcard
它对我有用。