我有这种情况,我需要创建一个方法,将InputStream
返回给调用者,比如说:
def getStream(key): (contentLength, content: InputStream)
目标是通过内容InputStream
返回非常大的内容二进制文件(GB)。
这个方法里面的逻辑应该是这样的:
val os = new PipedOutputStream()
val is = new PipedInputStream(os)
for (file <- smallfiles) // a sequence of small files
os.write(file)
当总大小(比如500GB)时,这个for循环会导致内存问题吗?如果是这样,处理这种情况的正确方法是什么?