Java 支持(写入)大内容输入流的正确方法
在这个场景中,我需要创建一个方法,将Java 支持(写入)大内容输入流的正确方法,java,scala,inputstream,Java,Scala,Inputstream,在这个场景中,我需要创建一个方法,将InputStream返回给调用者,比如: def getStream(key): (contentLength, content: InputStream) 目标是通过contentInputStream返回非常大的内容二进制(GBs) 该方法中的逻辑应该类似于: val os = new PipedOutputStream() val is = new PipedInputStream(os) for (file <- smallfiles) /
InputStream
返回给调用者,比如:
def getStream(key): (contentLength, content: InputStream)
目标是通过contentInputStream
返回非常大的内容二进制(GBs)
该方法中的逻辑应该类似于:
val os = new PipedOutputStream()
val is = new PipedInputStream(os)
for (file <- smallfiles) // a sequence of small files
os.write(file)
val os=new PipedOutputStream()
val is=新的PipedInputStream(os)
对于(我不理解的文件,内容
输入流
是getStream
必须读取的内容-它不能写入或通过它“返回”数据。我认为这不是问题。您可以逐字节读取第一个文件(使用BufferedInputStream/BufferedOutstream)完成后,关闭它们并开始读取第二个文件。您始终只打开一个输入文件-输出文件在磁盘上-而不是内存中。