字节数组中的字节数

时间:2016-04-12 20:14:08

标签: java bytearray sizeof

我有一个数组byte[] arr;

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

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

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

1 个答案:

答案 0 :(得分:11)

是的,根据定义,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是更好的解决方案。