我从网上下载了一个jpg,我想把它保存到磁盘然后重新加载它。我正在尝试这样的事情:
Bitmap bmp = ...; // loaded from net.
File file = new File(Environment.getExternalStorageDirectory(), "tmp.jpg");
OutputStream out = getContentResolver().openOutputStream(Uri.parse(file.getAbsolutePath()));
bmp.compress(Bitmap.CompressFormat.JPEG, 70, out);
out.flush();
out.close();
...
File f2 = new File(Environment.getExternalStorageDirectory(), "tmp.jpg");
Uri uri = Uri.fromFile(f2);
但是在尝试创建新的File()实例时,我在第二行上遇到错误:
java.io.FileNotFoundException:没有内容提供者:/sdcard/tmp.jpg
我正在使用2.0模拟器,它有一个SD卡。我做错了什么?
由于
答案 0 :(得分:2)
这是因为你正在使用getContentResolver()。openOutputStream()。您应该只创建一个FileOutputStream。而且你不需要使用Uris。
答案 1 :(得分:1)
我有一个带有SD卡的测试应用程序,所以我添加了第二行,它运行良好:
File file = new File(Environment.getExternalStorageDirectory(), "tmp.jpg");
你确定你正确地创建了卡片,假设你正在使用Eclipse,你是否告诉Eclipse有关卡片的信息(-sdcard \ sdcard.iso)?