gpt4 book ai didi

Java 读取文件到字节数组 - 最有效的实现

转载 作者:行者123 更新时间:2023-11-29 03:55:30 26 4
gpt4 key购买 nike

我正在从 Android 设备的 SD 卡中读取图像文件。由于内存泄漏,这会导致内存不足 fatal error 。我已将其缩小到 GC 未删除的 1 字节数组的分配。我使用 FileInputStream 读入文件有没有更有效的方法来做到这一点?你能看出内存泄漏的原因吗?谢谢

    private String getHexFileString(File _file)
{
byte[] byteStream = new byte[(int) _file.length()];
String fileHexString = null;
try
{
FileInputStream fis = new FileInputStream(_file);
fis.read(byteStream);
fis.close();
fis = null;
fileHexString = byteArrayToHexString(byteStream);
}
catch (FileNotFoundException e1)
{ actLog.addMessage(new ErrorMessage(e1)); }
catch (IOException e2)
{ actLog.addMessage(new ErrorMessage(e2)); }
catch(OutOfMemoryError e3)
{ actLog.addMessage(new ErrorMessage(e3)); }


return fileHexString;
}

/**
* This method formats a byte-array into a hex string
*
* @param b byte-array
* @return hex string
*/
public String byteArrayToHexString(byte[] b)
{
char[] hexVal = new char[b.length * 2];
int value = 0;
for (int i = 0; i < b.length; i++)
{
value = (b[i] + 256) % 256;
hexVal[i * 2 + 0] = kDigits[value >> 4];
hexVal[i * 2 + 1] = kDigits[value & 0x0f];
}
return new String(hexVal);
}

最佳答案

如果在您阅读时出现异常,您将不会关闭该文件。 finally 最好用 block

关于Java 读取文件到字节数组 - 最有效的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623972/

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