gpt4 book ai didi

android EMFILE(打开的文件太多)

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:06 27 4
gpt4 key购买 nike

我实现了一个文件缓存来为长 GridView 加载小图像。滚动一段时间后,我得到了很多 libcore.io.ErrnoException: open failed: EMFILE (Too many open files)

如何避免这种情况?这是读取一个位图的代码:

File fullCacheDir = new File(Environment.getExternalStorageDirectory().toString(), cacheDir);
File file = new File(fullCacheDir.toString(), fileName);

if (!file.exists()) {
return null;
}

Bitmap bm = BitmapFactory.decodeFile(file.toString());

这是保存一张位图:

FileOutputStream outputStream = new FileOutputStream(fileUri);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
outputStream.close();

最佳答案

您的 close() 调用是否有可能因为异常而无法接通?我通常这样编码:

try {
new FileOutputStream(fileUri);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
} finally {
try {
outputStream.close();
} catch (Exception ignored) {
// ignore exceptions generated by close()
}
}

我看不出第一个代码 fragment 有任何明显的错误。

关于android EMFILE(打开的文件太多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956256/

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