2017-08-26 22 views
-2

所以沒有什麼特別的原因,我想知道你可以存儲在一個千兆字節的內存中的最大數字是多少。所以我使用了一個任意的精度庫來計算它,但麻煩是試圖將這個數字輸出到一個文件,因爲一個字符串只能存儲int.max字符。Java:如何輸出一個非常大的數字(十億左右的數字)到一個文件?

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(); 
+2

如果您想在'x'字節中將最大可能數字存儲在文件中,只需寫入'x''0xFF'字節。 – tkausl

+0

@tkausl我認爲這將選擇一個稍大的數字,因爲任意的精度庫將不得不使用一些字節來記錄數字的附加信息,比如數字的長度,以便庫可以支持任意精度。 –

+0

@DPE什麼不在這裏工作? – nullpointer

回答

-1

(未測試的方法;不能工作)

使用MOD操作者%爲10的動力以選擇最右邊的位。將這些數字寫入一行文件中。然後除以10的相同冪。現在你的數字縮短了N個數字。重複在單獨的行上將每組數字寫入文件。

現在,將行按相反順序複製到另一個文件中,如果您在Linux上,則使用javatac

你可以將每一行連接在一起,儘管我會勸阻它,因爲如果你嘗試將非常長的文本加載到它們中,但可以處理許多文本行,許多程序將掛起。

+0

請閱讀[回答]。對這個答案的猜測在這裏不受歡迎,因爲這不是一個討論論壇。如果您不確定自己的答案,請不要發佈,直到您編寫代碼,對其進行測試並驗證它是否回答OP的問題。 –

+0

瞭解,我爲我的懶惰道歉 –

+0

然而,此方法的工作 – DPE

相關問題