【发布时间】:2013-12-09 23:25:59
【问题描述】:
我使用以下代码将图像写入 android 的外部存储:
File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/download");
dir.mkdirs();
fileName = "image_2.jpeg";
File file = new File(dir, fileName);
try {
FileOutputStream outStream = new FileOutputStream(file);
Bitmap bitmap = BitmapFactory.decodeFile("android.resource://com.mypackage.com/drawable/image_1");
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
此代码用于从drawable文件夹中读取image_1.jpg,然后将其写入外部存储中的下载文件夹,名称为image_2.jpeg。 (在外部存储中创建下载文件夹,并在该文件夹中创建一个名为 image_2.jpeg 的文件)。 此代码将产生一个((强制关闭))。下载文件夹已创建,image_2.jpeg 也已创建,但 image_2.jpeg 已损坏。
【问题讨论】:
-
"此代码将产生一个 ((force close))" -- 使用 LogCat 检查与您的崩溃相关的 Java 堆栈跟踪。此外,请不要将用户的外部存储与随机目录混淆。在
Context上使用Environment.getExternalStoragePublicDirectory()或getExternalFilesDir(),为您的文件提供更合理的位置。
标签: android image storage external