我有一个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
但是输入
中没有任何变化。我不知道该怎么做,所以我就这么做了
String inputText = IOUtils.toString(input, StandardCharsets.UTF_8);
inputText = inputText.replaceAll("\\s+", " ").trim(); //
System.out.println(inputText); // Changed
这既快速又简单,但当然不能很好地扩展到大型流(因为可能会耗尽内存)
最佳答案
看起来“pattern”参数根本不是正则表达式模式,甚至不是通配符。这只是字符串到字符串的替换。
如果我们谈论的是“org.apache.poi.util.ReplacingInputStream”。
关于java - 通过在其上应用正则表达式来替换 InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60188859/