Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android内部存储读取文件_Java_Android_Fileinputstream - Fatal编程技术网

Java 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,

我有一个Android内部存储的问题。我在包根文件夹中创建了一个文件夹,调用
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:我找不到其他解决方案,所以使用了这个解决方案。谢谢:)