Java Android内部存储读取文件
我有一个Android内部存储的问题。我在包根文件夹中创建了一个文件夹,调用Java Android内部存储读取文件,java,android,fileinputstream,Java,Android,Fileinputstream,我有一个Android内部存储的问题。我在包根文件夹中创建了一个文件夹,调用getDir()并使用MODE\u WORLD\u WRITEABLE,因为我想让相机应用程序在这个文件夹中写入捕获的图像。无论如何,我可以看到捕获的图像在文件夹中,带有DDMS。 问题是我无法读取那个文件 我试图用以下代码读取文件: File file = context.getDir("images", Context.MODE_WORLD_READABLE); File image = new File(file,
getDir()
并使用MODE\u WORLD\u WRITEABLE
,因为我想让相机应用程序在这个文件夹中写入捕获的图像。无论如何,我可以看到捕获的图像在文件夹中,带有DDMS
。
问题是我无法读取那个文件
我试图用以下代码读取文件:
File file = context.getDir("images", Context.MODE_WORLD_READABLE);
File image = new File(file, "image.jpeg");
if (image.canRead())
Log.w("read", "can read");
else
Log.w("read", "can't read");
在LogCat中只有第二条消息(无法读取)
我还尝试使用文件名创建FileInputStream
,但收到FileNotFoundException
有人能告诉我我做错了什么吗
提前谢谢
编辑:
读取文件是正确的,但唯一的问题是,当cam应用程序将图像保存到指定位置时,cam应用程序对图像文件设置的权限是使用
adb (chmod 777 image.jpeg)
我能看懂这张图片。有趣的是,cam应用程序正在使用---rwxr-x
将图像文件写入SD卡
有没有办法在运行时更改文件权限?为什么不将其放在默认的照片目录中
File path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
File file = new File(path, "DemoPicture.jpg");
(发件人:)
另请参阅调用camera应用程序的更完整示例:引用您应该使用openFileOutput()
和openFileInput()
来处理内部存储。。。你不允许/不能在那里做DIR。安卓自己做。。当您的应用程序被删除时,这些数据将被清除 您确定该文件在包根目录中,而不是在files
子目录中吗?将文件放在包根目录中是很少见的。包根目录中有文件夹图像,文件夹中有文件。我正在使用内部存储,以防设备没有外部存储。我不知道如何在文件中创建可写的文件夹,以便cam应用程序可以写入捕获的图像。嗨,也许你可以在回答中包含这一点,因为大多数人在拍摄完照片后都想在画廊中展示他们的照片,并想知道为什么它不起作用。保存文件后,进行广播以像这样注册文件:sendBroadcast(新意图(Intent.ACTION\u MEDIA\u SCANNER\u SCAN\u file,Uri.parse(“file://”+file.getAbsolutePath()))代码>getExternalStoragePublicDirectory()返回外部存储。如果外部存储器不可用,我想将图像保存到内部存储器。@Sparky:我找不到其他解决方案,所以使用了这个解决方案。谢谢:)