gpt4 book ai didi

java - Android 将位图写入 SD 卡

转载 作者:太空狗 更新时间:2023-10-29 16:09:18 25 4
gpt4 key购买 nike

我正在尝试将位图写入 android 上的 sdcard,但我收到了
的错误消息/mnt/sdcard/PhysicsSketchpad/sketchpad145.png(没有那个文件或目录)。
我在 list 中声明了 android.permission.WRITE_EXTERNAL_STORAGE 权限,这是我的代码:

String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + 
"/PhysicsSketchpad/";
File dir = new File(file_path);
dir.mkdirs();
File file = new File(dir, "sketchpad" + pad.t_id + ".png");
FileOutputStream fOut = new FileOutputStream(file);

bmp.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();

这是怎么回事?

更新

似乎当我尝试写入现有目录时,出现权限被拒绝错误,

08-11 09:55:23.796: WARN/Physics Sketchpad(8881): Error when saving: IOException /mnt/sdcard/download/sketchpad54.png (Permission denied)

当我尝试保存在新目录中时,出现没有这样的文件或目录的错误,
08-11 09:59:20.175: WARN/Physics Sketchpad(9040): 保存时出错: IOException/mnt/sdcard/PhysicsSketchpad/sketchpad55.png(没有那个文件或目录)

此外,File.mkdirs() 会根据是否成功返回一个 boolean 值,它返回 false。

最佳答案

试试这段代码。

  String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + 
"/PhysicsSketchpad";
File dir = new File(file_path);
if(!dir.exists)
dir.mkdirs();
File file = new File(dir, "sketchpad" + pad.t_id + ".png");
FileOutputStream fOut = new FileOutputStream(file);

bmp.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();

关于java - Android 将位图写入 SD 卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com