通过在其上使用正则表达式替换InputStream

问题描述 投票:0回答:1

我有一个InputStream,我需要对其应用正则表达式。我需要OutputStream作为返回值,因为它应该转发给api。我这样做:

// get byte stream
InputStream input = ...;
OutputStream output;

ReplacingInputStream test = new ReplacingInputStream(input, "\\s+", " ");
String inputText = IOUtils.toString(test, StandardCharsets.UTF_8);
System.out.println(inputText); // nothing is changed

但是input中没有任何改变。我不知道该怎么做,所以我做了

String inputText = IOUtils.toString(input, StandardCharsets.UTF_8);
inputText = inputText.replaceAll("\\s+", " ").trim(); // 
System.out.println(inputText); // Changed

这是快速且容易的,但是当然不能很好地扩展到大数据流(因为可能耗尽内存)

java regex inputstream
1个回答
1
投票

看起来'pattern'参数根本不是Regexp模式,甚至不是通配符。这只是一个字符串到字符串的替换。

如果我们在谈论'org.apache.poi.util.ReplacingInputStream'。

© www.soinside.com 2019 - 2024. All rights reserved.