Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BigInteger到字节数组,数组开头的大小为bigint_Java_Arrays_Biginteger - Fatal编程技术网

Java BigInteger到字节数组,数组开头的大小为bigint

Java BigInteger到字节数组,数组开头的大小为bigint,java,arrays,biginteger,Java,Arrays,Biginteger,我想把一个biginger写入一个文件,但我想在它前面加上整数的长度,这样我就知道当我再次读取它时它有多长(这个文件有几个bigint) 我知道我可以使用biginger.toByteArray()将其转换为字节数组,但要用数组的长度预先填充该数组,我唯一能想到的方法是创建另一个数组并复制它。我不想这样做,因为它基本上会使我写文件的时间翻倍,并且浪费时间和内存 还有其他更有效的方法吗 编辑:查看注释-我这样做是因为我想在一个文件中放置多个bigint,因此我可以使用长度作为排序分隔符。您不必在数

我想把一个biginger写入一个文件,但我想在它前面加上整数的长度,这样我就知道当我再次读取它时它有多长(这个文件有几个bigint)

我知道我可以使用
biginger.toByteArray()
将其转换为字节数组,但要用数组的长度预先填充该数组,我唯一能想到的方法是创建另一个数组并复制它。我不想这样做,因为它基本上会使我写文件的时间翻倍,并且浪费时间和内存

还有其他更有效的方法吗


编辑:查看注释-我这样做是因为我想在一个文件中放置多个bigint,因此我可以使用长度作为排序分隔符。

您不必在数组中预先添加任何内容。先写长度,然后再写数组。

在创建数组之前,如何找到长度?您不必事先知道长度。负责创建一个大小合适的数组,填充并返回。但这根本不是我想要的。比方说,bigint是256,然后字节数组通过
biginger返回。toByteArray
将是
00000001 00000000
,但我想要的是
00000010 00000001 00000000
@hoodakaushal当然,所以只需获取字节数组,写入其长度,然后写入即可。将数组临时存储在变量中不会产生内存开销。哦,所谓写入,是指写入文件。现在有道理了。