在InputStream和OutputStream之间搜索/替换

时间:2016-08-03 09:19:51

标签: java inputstream outputstream

我正在将大量数据从InputStreams传输到OutputStreams。我正在使用的方法如下:

public static void forwardStream(InputStream in, OutputStream out) throws IOException
{
    byte[] buffer = new byte[1024];
    int bytesRead;

    while ((bytesRead = in.read(buffer)) != -1) {
        out.write(buffer, 0, bytesRead);
    }
}

现在我需要在写入之前对流内容执行搜索/替换操作。将整个流加载到String中然后执行String.replace()不是一个选项,因为流数据的大小很大。

我的想法是将InputStream包装在继承InputStream的某种辅助类中,并在读取其内容时执行替换操作。那里有没有经过验证的解决方案?

1 个答案:

答案 0 :(得分:0)

我很少知道您需要什么样的过滤。但是可能的解决方案是扩展java.io.FilterInputStream并覆盖read()和read(byte [] b)