字节数组中的字节数

Number of bytes in byte array

我有一个数组byte[] arr;

ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] arr = out.toByteArray();

如何测量 arr 中的数据大小(如果它是写入磁盘或通过网络传输的)? 以下方法是否正确 - 他们假设 sizeof(byte) = 1B

int byteCount = out.size();
int byteMsgCount = arr.length;

是的,根据定义 byte 类型变量的大小是一个字节。所以你的数组的长度确实是 array.length 字节。

out.size() 将为您提供相同的值,即您写入输出流的字节数。

[编辑] 来自 cricket_007 评论:如果您查看 sizetoByteArray

的实现
public synchronized byte toByteArray()[] {
    return Arrays.copyOf(buf, count);
}

public synchronized int size() {
    return count;
}

... 所以 toByteArray 基本上复制当前输出缓冲区,最多 count 字节。所以使用size是更好的解决方案。