读写文件

时间:2010-02-26 18:56:54

标签: android

我从网上下载了一个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卡。我做错了什么?

由于

2 个答案:

答案 0 :(得分:2)

这是因为你正在使用getContentResolver()。openOutputStream()。您应该只创建一个FileOutputStream。而且你不需要使用Uris。

答案 1 :(得分:1)

我有一个带有SD卡的测试应用程序,所以我添加了第二行,它运行良好:

File file = new File(Environment.getExternalStorageDirectory(), "tmp.jpg");

你确定你正确地创建了卡片,假设你正在使用Eclipse,你是否告诉Eclipse有关卡片的信息(-sdcard \ sdcard.iso)?