gpt4 book ai didi

Java资源泄漏

转载 作者:行者123 更新时间:2023-12-01 22:15:23 27 4
gpt4 key购买 nike

我的应用程序中有这个代码片段,并且我很确定我有关闭所有流。

但是,令人惊讶的是,我不断得到:在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable。java.lang.Throwable:未调用显式终止方法“close”

任何指针都会非常有用。

if (fd != null) {
InputStream fileStream = new FileInputStream(fd.getFileDescriptor());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fileStream.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
}
content = bos.toByteArray();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {

if (fileStream != null) {
fileStream.close();
}

if (bos != null) {
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

最佳答案

尝试将流的实例化移动到try

InputStream fileStream = null;
ByteArrayOutputStream bos = null;
byte[] buf = new byte[1024];
try {

fileStream = new FileInputStream(fd.getFileDescriptor());
bos = new ByteArrayOutputStream();

关于Java资源泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31177010/

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