当从InputStream中读取数据时,是否有一种方法可以在达到特定大小时取消读取并安全地忽略其余部分,确保资源完全释放?
到目前为止,我只是完成了读取,但理想情况下,我希望停止读取并继续执行。如何安全地实现?
以下是我目前的代码:
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] byteData = new byte[16384];
while ((nRead = inputStream.read(byteData, 0, byteData.length)) != -1){
if(buffer.size() <= MAX_FILE_SIZE){
buffer.write(byteData, 0, nRead);
}
}
if(buffer.size() <= MAX_FILE_SIZE){
buffer.flush();
mData = buffer.toByteArray();
}
inputStream.close();
谢谢
InputStream
是一个基类,其close()
方法的实现已经被指定。你在真正的程序中使用的InputStream
子类将会实现close()
方法来做一些适当的事情;例如关闭文件描述符、释放内存映射缓冲区等。 - Stephen C