【发布时间】:2021-10-12 17:36:49
【问题描述】:
我的应用应该从图库中获取图像并将其放入应用数据目录。 我的实现是我尝试将图片从图库直接共享到应用程序中,并使用其 uri 将其从源位置复制到 android 应用程序目录。
收到图片URI后:
copyFile(new File(mImageUri.getPath()), getFilesDir());
copyFile 方法:
public void copy(File src, File dst) throws IOException {
try (InputStream in = new FileInputStream(src)) {
try (OutputStream out = new FileOutputStream(dst)) {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
}
}
}
问题是我得到了 FileNotFound 异常,我该如何解决?
【问题讨论】:
-
Uri不是文件。使用ContentResolver和openInputStream()在您的Uri标识的内容上获得InputStream。 -
我用这个
InputStream in = getContentResolver().openInputStream(src)替换了文件inputStream,但它仍然不起作用。 @CommonsWare
标签: android inputstream file-management