Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—在内存中处理文件而不使用磁盘R/W_Java_File_Memory_Disk - Fatal编程技术网

Java—在内存中处理文件而不使用磁盘R/W

Java—在内存中处理文件而不使用磁盘R/W,java,file,memory,disk,Java,File,Memory,Disk,我通过套接字接收文件 并将它们保存到数据库中 因此,我接收字节流,并传递它 到后端进程,例如Process1 用于数据库保存 我希望这样做而不保存 磁盘上的流。因此,与其存储传入流 作为磁盘上的文件,然后将该文件传递给Process1, 我希望在它还在记忆中的时候通过它。 这是为了消除耗时的磁盘读写 我可以做的一种方法是将字节[]传递给Process1。 我想知道是否有更好的方法 TIA。听起来像你要找的 您可以使用。它本质上是一个可增长的字节[],您可以随意写入它,这在可用堆空间的限制内 在写

我通过套接字接收文件 并将它们保存到数据库中

因此,我接收字节流,并传递它 到后端进程,例如Process1 用于数据库保存

我希望这样做而不保存 磁盘上的流。因此,与其存储传入流 作为磁盘上的文件,然后将该文件传递给Process1, 我希望在它还在记忆中的时候通过它。 这是为了消除耗时的磁盘读写

我可以做的一种方法是将字节[]传递给Process1。 我想知道是否有更好的方法

TIA。

听起来像你要找的

您可以使用。它本质上是一个可增长的
字节[]
,您可以随意写入它,这在可用堆空间的限制内


在写入它/刷新它/关闭它之后(尽管最后两个操作本质上是一个no-op,这不是放弃sane实践的理由),您可以使用此类获取底层字节数组。

保存在
ByteArrayOutputStream
?当然,它会占用堆空间course@fge我会调查的,这似乎就是我要找的。为我处理字节[]长度n all(?)它确实会,是的。堆饥饿,但它将把它写为ans&我接受它。他已经有了一个套接字:“我正在通过套接字接收文件[…]”