Java:写入OutputStream,然后将其用作InputStream
我想从远程存储中获取一个文件作为输入流,而不将其保存到本地文件系统。远程存储提供了一个Java API,其中包含一个方法,该方法获取OutputStream并将文件数据转储到其中Java:写入OutputStream,然后将其用作InputStream,java,stream,inputstream,outputstream,Java,Stream,Inputstream,Outputstream,我想从远程存储中获取一个文件作为输入流,而不将其保存到本地文件系统。远程存储提供了一个Java API,其中包含一个方法,该方法获取OutputStream并将文件数据转储到其中 void dump(OutputStream dest); 我想到的简单方法是创建一个临时文件,将数据转储到其中,然后将其作为InputStream重新打开。但这种方法会创建一个临时文件。有没有一种简单的方法可以在没有代理文件的情况下获得相同的结果?两个选项: 记忆 如果所讨论的“文件”足够小,可以将数据读入,然后使
void dump(OutputStream dest);
我想到的简单方法是创建一个临时文件,将数据转储到其中,然后将其作为InputStream重新打开。但这种方法会创建一个临时文件。有没有一种简单的方法可以在没有代理文件的情况下获得相同的结果?两个选项:
记忆
如果所讨论的“文件”足够小,可以将数据读入,然后使用其方法构造一个可从中读取的文件
管道
为了避免在内存中存储过多的内容,可以使用和
管道输出流
:
管道输出流可以连接到管道输入流以创建通信管道。管道输出流是管道的发送端。通常,数据由一个线程写入PipedOutputStream
对象,数据由另一个线程从连接的PipedInputStream
读取
PipedInputStream
:
管道输入流应连接到管道输出流;然后,管道输入流提供写入管道输出流的任何数据字节。通常,一个线程从PipedInputStream对象读取数据,另一个线程将数据写入相应的PipedOutStream
将输出流提供给API,并从输入流读取