gpt4 book ai didi

java - 在 Java 中声明和引用字节数组的二维数组

转载 作者:行者123 更新时间:2023-12-01 12:06:41 25 4
gpt4 key购买 nike

我想创建一个字节数组的二维数组(所以,我猜这是一个 3d 数组?),然后将存储在其中的每个数组写入文件。

我这样做是因为我需要先对通过套接字接收的字节数组进行排序,然后再将它们写入文件。

我从套接字接收到的缓冲区中有一个 header ,它告诉我应该存储在二维数组中的值(在 buffer[0] 和 buffer[1] 处)以及该数组的总大小数组(位于缓冲区 [2] 和缓冲区 [3])

我觉得我应该能够做这样的事情

byte[][][] outputbuffer = new byte[(int)buffer[2]][(int)buffer[3]][];

声明数组,然后每次我从套接字接收缓冲区时,

outputbuffer[(int)buffer[0]][(int)buffer[1]][] = buffer;

填充数组,并且

countera=buffer[2];
counterb=buffer[3];

在将数组写入文件时跟踪数组的大小。

然后,将其写入文件,

for (i=0;i<countera ;i++ ) {
for (j=0;j<counterb ;j++ ) {
file.write(outputbuffer[i][j][]);
}
}

当我尝试声明这样的数组时,出现“非法表达式开始”错误。有办法做到这一点吗?

谢谢。

最佳答案

byte[][][]outputbuffer = new byte[(int)buffer[2]][(int)buffer[3]][];

这不起作用,因为创建数组时必须指定数组大小。如果您不知道大小,请使用 ArrayList即ArrayList[][]outputBuffer

outputbuffer[i][j][] 应该是 Arrays.toString(outputbuffer[i][j])。 [] 用于声明数组,而不是引用它。

同样适用于outputbuffer[(int)buffer[0]][(int)buffer[1]][],您应该逐个元素更新数组,即outputbuffer[(int )buffer[0]][(int)buffer[1]][0]

关于java - 在 Java 中声明和引用字节数组的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com