java中如何给byte[]数组的末尾添加数据?

java中如何给byte[]数组的末尾添加数据?,第1张

给byte[]数组的末尾添加数据:byte[] b=new byte[1024]

int c=b.length;

b[c]=数据。

数组是计算机编程语言上,对于“Array”的中文称呼,是用于储存多个相同类型数据的集合。将相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。

数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

如果我告诉你,字节数组可以像字符串一样进行拼接,而且可以把字符串直接赋值给字节数组,你会不会觉得很神奇或者不可思议?当然,由于VB的字符串使用Unicode编码,而字节数组要求ANSI编码,所以要把编码转换一下才行。下面就是个把两个字节数组合为一个的例子:

Private Sub Command1_Click()

Dim b1() As Byte, b2() As Byte, b3() As Byte, i As Integer

ReDim b1(4)

Print "第1个字节数组:"

For i = 0 To 4

    b1(i) = 16 + i

    Print Hex(b1(i)) " "

Next

Print

ReDim b2(7)

Print "第2个字节数组:"

For i = 0 To 7

    b2(i) = 160 + i

    Print Hex(b2(i)) " "

Next

Print

b3 = StrConv(StrConv(b1, vbUnicode) & StrConv(b2, vbUnicode), vbFromUnicode)

Print "合并后的字节数组:"

For i = 0 To UBound(b3)

    Print Hex(b3(i)) " "

Next

End Sub

b3 = StrConv(StrConv(b1, vbUnicode) &StrConv(b2, vbUnicode), vbFromUnicode)

这句我单独解释一下:这是先把两个字节数组b1和b2分别转为Unicode编码,它们就变成了VB的字符串(真的哦!),然后把两个字符串拼接成一个字符串,再转为ANSI编码,最后赋值给一个动态字节数组b3,OK搞定!

这个实质是内存内容复制的问题,最简单的方法是调用系统的memcpy函数。

函数原型如下:

void *memcpy(void *dest, const void *src, size_t n)

2.功能

从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

3.所需头文件

C语言:#include<string.h>

C++:#include<cstring.h>

4.返回值

函数返回指向dest的指针。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11375848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存