我正在做一个应用程序,包括从接收方发送接收数据从android到微控制器,这是从微控制器到android我正在使用字节缓冲区来存储数据。但在这里我有一个问题我想在不同的阶段接收多个字节的数据为此我想清除字节缓冲区并再次使用相同的字节缓冲区可以任何人告诉我如何清除字节缓冲区
这是我的接收代码:
ByteBuffer buffer = ByteBuffer.allocate(64);
byte[] length = buffer.array();
byte[] Recevied_Data = new byte[64];
UsbRequest request = new UsbRequest();
while (true)
{
request.initialize(UsbDriver.USB_Device_Connection, UsbDriver.Data_In_End_Point);
request.queue(buffer, 64);
if (UsbDriver.USB_Device_Connection.requestWait() == request)
{
for(int i=0;i<length.length;i++)
{
Recevied_Data[i]=buffer.get(i);
if(Recevied_Data[0]==0x02 && Recevied_Data[1]==0x3B && Recevied_Data[2]==0x3B && Recevied_Data[3]==0x00 && Recevied_Data[4]==0x03){
Communication_Ok=true;
// **I want to clear the Buffer Here**
}
}
}
}
答案 0 :(得分:0)
为什么要删除数据?它是局部变量吗?如果它是局部变量,它将被GC清除,否则(在成员变量的情况下)只是为缓冲区赋值null。您可以通过将0(使用arraycopy)复制到bytebuffer来进行memset,但它将是无意义的代码。
答案 1 :(得分:-2)
This might be enough. 但是如果你想完全删除数据,你可以Look here,虽然它很脏但又简单易读。