/** * byte数组处理bean,若指定了byte数组的长度,运行就很快,长音频可用list形式添加 */ public class ByteArrayBean { private byte[] bytes = new byte[0]; private int index = 0;//byte数组被使用的最大数组下标 private int usedLen = 1;//byte数组被使用的最大长度 public ByteArrayBean() { } public ByteArrayBean(int length) { this.bytes = new byte[length]; } /** * 添加byte数组 * * @param toAddBytes * @return */ public byte[] add(byte[] toAddBytes) { //计算byte数组剩余空闲长度和被添加byte数组长度的大小 int len = bytes.length - usedLen - toAddBytes.length; if (len < 0) { //扩容 byte[] newBytes = new byte[this.bytes.length + Math.abs(len)]; for (int i = 0; i < this.bytes.length; i++) { newBytes[i] = this.bytes[i]; } this.bytes = newBytes; } //添加 for (int i = 0; i < toAddBytes.length; i++) { this.bytes[i + index] = toAddBytes[i]; usedLen++; } index = usedLen - 1; return this.bytes; } /** * 通过list集合的形式添加 * * @param bytesList * @return */ public byte[] add(List<byte[]> bytesList) { int len = getLength(bytesList); this.bytes = new byte[len]; for (byte[] by : bytesList) { add(by); } return this.bytes; } /** * 获取byte数组需要的长度 * * @param bytesList * @return */ private int getLength(List<byte[]> bytesList) { int len = 0; for (byte[] by : bytesList) { len += by.length; } return len; } /** * 获取合并后的byte数组 * * @return */ public byte[] get() { return this.bytes; } }
byte数组处理bean
最新推荐文章于 2022-09-14 17:09:51 发布