我有一个byte[],我想制作一个字节流。
对于int[]andlong和double,我在 Arrays 类中看到了方法:
Arrays.stream(int[] array)
Arrays.stream(long[] array)
Arrays.stream(double[] array)
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到任何 method Arrays.stream(byte[] array)。
那么,将字节原语流作为实际字节获取的最简单、最简洁的方法是什么?
我需要对 byte[] 进行转换,并且需要一个字节流来使用所有 Stream 函数来完成此操作(不,我不想将它们全部转换为整数。)
谁有好的解决办法吗?
附言。其他人从微控制器 API 向我提供 byte[] ...所以如果没有必要,我不想使用其他数据类型。
谢谢。
AStream<Byte>与原语的 ByteStream 一样好,因为Byte#valueOf返回装箱值的缓存实例(并且编译器为您处理装箱和拆箱)。那么唯一的技巧就是把你的byte[]变成Stream<Byte>.
一种方法是创建IntStream索引,然后将这些索引映射到您的查找中byte[]:
byte[] byteArray = "hello".getBytes();
Stream<Byte> byteStream = IntStream.range(0, byteArray.length)
.mapToObj(i -> byteArray[i]);
Run Code Online (Sandbox Code Playgroud)
我不知道 JDK 中有任何帮助器方法可以为您执行此操作。
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |