Java 为什么是';BigInteger';保存时与';位长度';报告?
我有一个名为Java 为什么是';BigInteger';保存时与';位长度';报告?,java,biginteger,Java,Biginteger,我有一个名为out的变量,它是一个BigInteger。 当尝试使用 我收到46 如果我使用 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("./testBig.dat")); oos.writeObject(out); oos.close(); 我得到一个208字节的文件 有人能给我解释一下为什么这两个值不同吗?这是因为在Java中存储对象;它不仅仅存储biginger对象的原始内容 您只能通过反序列
out
的变量,它是一个BigInteger
。
当尝试使用
我收到46
如果我使用
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("./testBig.dat"));
oos.writeObject(out);
oos.close();
我得到一个208字节的文件
有人能给我解释一下为什么这两个值不同吗?这是因为在Java中存储对象;它不仅仅存储biginger
对象的原始内容
您只能通过反序列化来读取内容,例如使用
ObjectInputStream
一个是表示变量值的位数,另一个是包含变量本身序列化值的文件大小(这是一个类)-基本上是重新创建序列化变量的实时副本所需的所有内容。他们几乎毫无关联。你只是想把变量的值写进一个文件吗?你看过文件的内容了吗?这两个数字只是相切的关系。@fvu是的,基本上这就是我的意图,把代表BigInteger所包含的数字的所有位写进一个文件。然后看看这个方法。它将为您提供一个字节数组,其中包含2的补码表示形式中的BigInteger值。
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("./testBig.dat"));
oos.writeObject(out);
oos.close();