Like in 将 InputStream 转换为给定字符集的 Stream https://stackoverflow.com/questions/30336257/convert-inputstream-into-streamstring-given-a-charset我想转换一个InputStream is
into a Stream<String> stream
。但这一次不是分开InputStream
在新行字符处,我想将其分成相等长度的部分。因此,流的所有字符串都具有相同的长度(流的最后一个元素可能例外,它可能更短)。
我认为仅使用类库方法是不可能的,因此您必须编写自己的逻辑,遵循与BufferedReader.lines
:
-
InputStreamReader
- 首先创建一个InputStreamReader
-
Iterator<String>
- 实现一个自定义迭代器子类,将流分割成您想要的片段。听起来你想实施hasNext()
and next()
打电话给readPart()
最多读取 N 个字符。
-
Spliterators.spliteratorUnknownSize
- 将迭代器传递给此方法以创建 Spliterator。
-
StreamSupport.stream
- 将 Spliterator 传递给此方法以创建流。
最终,类库没有用于从输入流读取并转换为固定大小字符串的内置函数,因此您必须为 #1/#2 编写这些内置函数。之后,在 #3/#4 中转换为流也不算太糟糕,因为有类库方法可以提供帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)