
04-11 22:13:14.899: E/error(13833): /mnt/sdcard/myTomatoes/covers/378194.PNG: open Failed: ENOENT (No such file or directory)04-11 22:13:14.899: W/System.err(13833): java.io.fileNotFoundException: /mnt/sdcard/myTomatoes/covers/378194.PNG: open Failed: ENOENT (No such file or directory)04-11 22:13:14.899: W/System.err(13833): at libcore.io.IoBrIDge.open(IoBrIDge.java:416)04-11 22:13:14.899: W/System.err(13833): at java.io.fileOutputStream.<init>(fileOutputStream.java:88)04-11 22:13:14.899: W/System.err(13833): at java.io.fileOutputStream.<init>(fileOutputStream.java:73)04-11 22:13:14.899: W/System.err(13833): at BL.ImageMethods.SaveImagetoMemory(ImageMethods.java:60)04-11 22:13:14.899: W/System.err(13833): at com.example.mytomatoes.MovIEDetailsActivity.onClick(MovIEDetailsActivity.java:337)04-11 22:13:14.899: W/System.err(13833): at com.androID.internal.app.AlertController$buttonHandler.handleMessage(AlertController.java:166)04-11 22:13:14.899: W/System.err(13833): at androID.os.Handler.dispatchMessage(Handler.java:99)04-11 22:13:14.899: W/System.err(13833): at androID.os.Looper.loop(Looper.java:137)04-11 22:13:14.899: W/System.err(13833): at androID.app.ActivityThread.main(ActivityThread.java:5039)04-11 22:13:14.899: W/System.err(13833): at java.lang.reflect.Method.invokeNative(Native Method)04-11 22:13:14.899: W/System.err(13833): at java.lang.reflect.Method.invoke(Method.java:511)04-11 22:13:14.899: W/System.err(13833): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)04-11 22:13:14.899: W/System.err(13833): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:560)04-11 22:13:14.899: W/System.err(13833): at dalvik.system.NativeStart.main(Native Method)04-11 22:13:14.899: W/System.err(13833): Caused by: libcore.io.ErrnoException: open Failed: ENOENT (No such file or directory)04-11 22:13:14.899: W/System.err(13833): at libcore.io.Posix.open(Native Method)04-11 22:13:14.899: W/System.err(13833): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)04-11 22:13:14.899: W/System.err(13833): at libcore.io.IoBrIDge.open(IoBrIDge.java:400)
这些是我的权限:
<uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission androID:name="androID.permission.READ_EXTERNAL_STORAGE" />
这是我保存文件的方法:
public static voID SaveImagetoMemory(Context context,Bitmap img,int rottenID) { Log.i("SAVE IMAGE","start save"); file sd = Environment.getExternalStorageDirectory(); file location = new file(sd.getabsolutePath()+ "/myTomatoes/covers"); location.mkdir(); file dest = new file(location,rottenID + ".PNG"); try { Log.i("SAVE IMAGE","trying to save: " + dest.getPath()); fileOutputStream fos = new fileOutputStream(dest); img.compress(Bitmap.CompressFormat.PNG,100,fos); fos.flush(); fos.close(); } catch (IOException e) { Log.e("error",e.getMessage()); e.printstacktrace(); } } 用于创建file对象的所有混乱行都是我试用的结果…原始代码是:
file location = new file(Environment.getExternalStorageDirectory() + "/myTomatoes/covers"); file dest = new file(location,rottenID + ".PNG");
我还尝试首先创建ByteArrayOutputStream并将Bitmap压缩为它,然后执行fos.write(mByteArrayOpStream.toByteArray())并且它不起作用.
顺便说一句,我正在使用模拟器,但我也在几个“galaxy S”上检查了这个并且发生了相同的错误…(当我尝试在手机或DDMS中浏览文件时,我可以看到它没有’甚至创建文件夹……
解决方法 从您的问题描述看起来您甚至无法创建该文件夹.所以请确保以下内容> SD卡状态(已安装和可写)适用于创建文件夹.使用这个link
>目录已创建
if(!file.isExist())
boolean created = file.mkdir();
稍后您可以通过测试布尔值来检查您的文件夹是否已创建.如果没有创建您的文件夹,没有理由进一步使用您的代码.
>父文件夹存在.
或者,您可以使用mkdirs()来创建所有必需的父目录.
总结以上是内存溢出为你收集整理的android – 将Bitmap写入外部存储(sdcard)全部内容,希望文章能够帮你解决android – 将Bitmap写入外部存储(sdcard)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)