java - 特殊的 OutputStream 根据输入数据量进入内存和文件

标签 java arrays inputstream

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

最佳答案

commons io 有一个可行的解决方案:DeferredFileOutputStream .

关于java - 特殊的 OutputStream 根据输入数据量进入内存和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502387/

相关文章:

java - 集成 Android 加速度计以查找速度和位置

c++ - 排序二维动态数组 C++

javascript - 如何获取数组中元素的所有可能组合,包括顺序和长度

Java输入流

c++ - 循环,if 语句,使用 inputFile 的函数仅输出 0

java - 我的 Java Hashmap 实现存在问题

java - 随时间改变文字颜色

java - 合并具有相同结构和 Hibernate 映射的两个数据库

java - 两个随机数组之间的最小值?

java - 从 shell 脚本生成的 Java InputStream 中读取是批量进行的