Android-如何捕获java.io.IOException:设备上没有剩余空间



只是为了清除它,这是在实际设备上,而不是模拟器上。我设置了一个文件,用于存储图像,突然设备会在logcat中发出"设备上没有剩余空间"警告。我可以看到我在内存中还有空间,但由于某种原因,它无法再保存任何文件。我用小数字来命名图像,这样我就不会有疯狂的名字大小。

现在,在文件中出现错误之前,我有大约80个图像。

我想我可以发现空间不足的错误并清空文件,我知道我可能应该通过检查实际空间有多满以及我还有多少空间来做到这一点,但我还没有试图弄清楚。

我遇到的另一个问题是,我告诉应用程序用将数据存储在sd卡上

android.os.Environment.getExternalStorageDirectory();

而是将数据存储在内部存储器上。我已经设置了所有权限,但由于某种原因,它存储在内部而不是外部。

因此,有人可以告诉我一些关于如何检查应用程序存储的可用内存量的信息,也可以告诉我为什么当我试图在外部存储时,我最终会存储到内部。

您应该使用android.od.Environment.getExternalStorageDirectory.getPath()

看看这个。