我有一小段代码。我正在使用字节数组创建一个InputStream,并将一些数据放到服务器上。
public void putStreamGetBytes() {
try {
String key = getKey();
byte[] data = getTestData(getPayloadSize());
InputStream stream = new ByteArrayInputStream(data);
putStream(assetNWK, key, stream, true, RESPONSE_OK, VERSION_1_1, null, true);
validateBytes(assetNWK, key, data, RESPONSE_OK, VERSION_1_1, null, true);
} catch (Exception e) {
handleError(e);
}
}
我还没有打开任何资源,比如文件之类的。我需要关闭流以避免内存泄漏吗?
有时您无法从流中获得预期的输出。所以有时候流会阻塞。为了避免这些阻塞,你需要先flush()
流,然后close()
流。
Here you are not using file or socket so memory leak would not happen but it's good practice to close stream after use.
避免内存泄漏。你需要把小溪放掉。要释放流,您需要在final块中调用close方法。
您唯一要分配的是InputStream本身。特别是在IOExceptions的情况下,根据您对代码的使用情况,这可能会有问题,如果可能的话,我建议使用try-with-resources语法,比如:
try(InputStream stream = new ByteArrayInputStream(data)){
......
}