我想获取字节数组流,但我了解到Arrays
没有获取字节数组流的方法。
byte[] byteArr = new byte[100];
Arrays.stream(byteArr);//Compile time error
我的问题:
- 为什么不支持这个功能?
- 如何获取字节数组的流?
注意:我知道可以使用Byte[]
代替byte[]
,但这并没有回答我的问题。
我想获取字节数组流,但我了解到Arrays
没有获取字节数组流的方法。
byte[] byteArr = new byte[100];
Arrays.stream(byteArr);//Compile time error
我的问题:
注意:我知道可以使用Byte[]
代替byte[]
,但这并没有回答我的问题。
原始流只有三种类型:IntStream、LongStream和DoubleStream。
因此,您可以使用最接近的IntStream,其中数组中的每个字节都被升级为int。
据我所知,从字节数组构建IntStream的最简单方法是
IntStream.Builder builder = IntStream.builder();
for (byte b : byteArray) {
builder.accept(b);
}
IntStream stream = builder.build();
编辑: assylias 提供了另一种更简短的方法:
IntStream stream = IntStream.range(0, byteArr.length)
.map(i -> byteArray[i]);
IntStream.range(0, byteArr.length).map(i -> byteArr[i])
。该代码将生成一个包含字节数组中每个元素的整数流。 - assylias