Java:如何向文件输出非常大的数字(十亿左右的数字)?

Java:如何向文件输出非常大的数字(十亿左右的数字)?,java,Java,因此,没有什么特别的原因,我想知道一个千兆字节内存中能存储的最大数字是多少。所以我使用了一个任意精度的库来计算它,但麻烦的是试图将这个数字输出到一个文件中,因为字符串只能存储int.max字符 Apint a = new Apint(2); a = ApintMath.pow(a, 8589934591l); a = a.subtract(new Apint(1)); File file = new File("theNumber.txt"); PrintWrit

因此,没有什么特别的原因,我想知道一个千兆字节内存中能存储的最大数字是多少。所以我使用了一个任意精度的库来计算它,但麻烦的是试图将这个数字输出到一个文件中,因为字符串只能存储int.max字符

Apint a = new Apint(2);
    a = ApintMath.pow(a, 8589934591l);
    a = a.subtract(new Apint(1));
    File file = new File("theNumber.txt");
    PrintWriter pls = new PrintWriter(file);
    a.writeTo(pls, true);
    pls.close();
(未经测试的方法;可能不起作用)

使用幂为10的mod运算符
%
选择最右边的数字。将这些数字写入一行上的文件。然后除以10的相同幂。现在您的号码短了N位。在单独的行上重复将每组数字写入文件

现在,使用或(如果您在Linux上)将这些行按相反顺序复制到另一个文件中


您可以将每一行连接在一起,但我不鼓励这样做,因为如果您尝试将很长一行文本加载到程序中,但可以处理多行文本,许多程序将挂起

如果要在文件中以
x
字节存储尽可能大的数字,只需写入
x
0xFF
字节即可。@tkausl我认为这将选择一个稍大的数字,因为任意精度库必须使用一些字节来记录有关数字的附加信息,如数字的长度这样库就可以支持任意精度。@DPE这里什么不起作用?请阅读。这里不赞成猜测答案,因为这不是一个讨论论坛。如果你不确定你的答案,在你编码、测试并验证它回答了OP的问题之前不要发布。明白了,我为我的懒惰道歉