字节数组中的字节数
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 评论:如果您查看 size
和 toByteArray
的实现
public synchronized byte toByteArray()[] {
return Arrays.copyOf(buf, count);
}
public synchronized int size() {
return count;
}
... 所以 toByteArray
基本上复制当前输出缓冲区,最多 count
字节。所以使用size
是更好的解决方案。
我有一个数组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 评论:如果您查看 size
和 toByteArray
public synchronized byte toByteArray()[] {
return Arrays.copyOf(buf, count);
}
public synchronized int size() {
return count;
}
... 所以 toByteArray
基本上复制当前输出缓冲区,最多 count
字节。所以使用size
是更好的解决方案。