没有方法来获取字节数组的流

时间:2015-07-14 13:30:42

标签: java java-8

我想得到字节数组流,但我知道Arrays没有获取字节数组流的方法。

byte[] byteArr = new byte[100];
Arrays.stream(byteArr);//Compile time error

我的问题,

  • 为什么不支持此功能?
  • 如何获取字节数组流?

注意:我知道我可以使用Byte[]代替byte[],但这不能回答我的问题。

1 个答案:

答案 0 :(得分:5)

只有3种类型的基本流:IntStream,LongStream和DoubleStream。

因此,最接近的是IntStream,其中数组中的每个字节都被提升为int。

AFAIK,从字节数组构建一个的最简单方法是

    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]);