目前,我正在使用 SSH 客户端 api,为我提供 stdout 和 stderr 作为输入流。我必须在客户端读取这些流中的所有数据,并为实现者提供一个 API,以便能够按照他们想要的方式处理这些数据(只需删除它、将其写入数据库、处理它等)。首先,我尝试将整个数据读取在字节数组中,但是对于大量数据(有时可能会发生),这可能会导致严重的内存问题。但如果不是真的有必要,我不想将每次调用的所有数据写入文件。
有人知道一种解决方案吗?它将数据从内存写入文件并将输入流的所有剩余数据附加到同一个文件后,将数据读入内存直到达到限制(例如 1mb)?
最佳答案
commons io 有一个可行的解决方案:DeferredFileOutputStream .
关于java - 特殊的 OutputStream 根据输入数据量进入内存和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502387/