我正在尝试从我的资产文件夹复制到我的SD卡,但每次我尝试它总是说找不到文件。这是我的代码:
if (!(new File(Environment.getExternalStorageDirectory() + "tessdata/eng.traineddata"))
.exists()) {
try {
AssetManager assetManager = getAssets();
InputStream in = assetManager.open("/assets/tessdata/eng.traineddata");
// GZIPInputStream gin = new GZIPInputStream(in);
OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory()
+ "tessdata/eng.traineddata");
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
// while ((lenf = gin.read(buff)) > 0) {
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
// gin.close();
out.close();
Log.d("", "Copied eng.traineddata");
} catch (IOException e) {
Log.d("",
"Was unable to copy eng.traineddata "
+ e.toString());
}
}
有人可以帮助我吗?
答案 0 :(得分:1)
将来,请发布整个堆栈跟踪,而不仅仅是您对错误消息的解释。
至少,这可能不是你想要的:
InputStream in = assetManager.open("/assets/tessdata/eng.traineddata");
项目中的assets/
目录是您在open()
上向AssetManager
提供的路径的一部分。因此,除非您的项目中有assets/assets/tessdata/eng.traineeddata
(请注意重复的assets/
),否则您可能需要:
InputStream in = assetManager.open("tessdata/eng.traineddata");