我有一个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
这是快速且容易的,但是当然不能很好地扩展到大数据流(因为可能耗尽内存)
看起来'pattern'参数根本不是Regexp模式,甚至不是通配符。这只是一个字符串到字符串的替换。
如果我们在谈论'org.apache.poi.util.ReplacingInputStream'。