Java快速生成20亿数字_关于内存:Java-打印10亿到20亿
我想打印1000000至1999999999。
我以為這是一件容易的事,但是蝕告訴了我一些有關內存錯誤的信息。 我該怎么辦? 我想要一個文本數據,其中所有數字都來自
將1000000000至1999999999分別記錄在新行中。 我以為可以在控制臺中將它們打印出來,然后將其復制并粘貼到.txt數據中就可以了,但遺憾的是沒有。
我的代碼:
public static void main(String[] args) {
int number = 1000000000;
do {
System.out.println(number);
number = number +1;
} while (number < 2000000000);
}
您將如何解決此問題?
請幫我。
這可能會正常工作。您面臨的問題是數據大小嗎?
如果Eclipse內存不足,請嘗試增加Eclipse中的內存。
從1 000 000 000開始計數,它停在1 006 000000。我什至不能從控制臺復制它。我不明白問題是什么。 @Rangas:如何增加Eclipse的記憶? wenzi:如何直接打印到.txt文件?
檢查此鏈接以更新蝕存儲器設置。 stackoverflow.com/questions/2610194/
杜德!您是否真的需要打印出十億個十位數字來證明您已使用do...while循環來掌握一系列數字?為什么不從100開始到上升到1000?只是在說...
或者假設這與掌握循環無關,但是您確實需要一個十億個數字的列表,文本文件可能不是存儲這些數字的最佳方法。接下來您需要與他們做什么?
是的,我確實需要打印出十億個十位數的數字。什么都不證明。我無法使用標準編輯器打開它。但發現:emeditor.com
您遇到的問題是因為您正在要求Eclipse在內存中緩沖1,000,000,000 x 11或12個字符。大于20 GB,對于Eclipse進程堆來說顯然太大了。
除非您在具有大量RAM的真正高端PC上運行Eclipse,否則該方法根本行不通。即使那樣,我也有懷疑。例如,復制和粘貼100億個字符可能無效。
您需要采取另一種方法。例如讓您的應用程序將數字直接寫入輸出文件。
我只是編寫了這段代碼,通過運行它,我得到了以下結果:
最終文件:10GB以上
開始時間:2018年10月6日星期六00:00:19 BRT
結束時間:2018年10月6日星期六00:03:25
try {
FileWriter writer = new FileWriter("count.txt");
System.out.println(new Date());
int number = 1000000000;
do {
writer.write(number +"
");
} while (number++ < 2000000000);
System.out.println(new Date());
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
謝謝您的解決方案! 我嘗試了一下,但是編輯器無法打開該文件。 您是否知道可以處理此數據量的編輯器?
超過3分鐘,而不是幾個小時
@Thilo是的,對不起。 我住的地方是凌晨5.00。 我應該去睡覺
@CoreNoob文件將保存在項目的根文件夾中
最好從命令行運行類文件并重定向輸出。假設您正在" unixy"類環境中運行。
java Counter > output.txt # This will take lot of time.
根據另一張海報,這不是很糟糕的時間,大約是幾分鐘(和數十GB的磁盤空間)。 :-)
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Java快速生成20亿数字_关于内存:Java-打印10亿到20亿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么看java中ide_如何在eclip
- 下一篇: php 主观题判分,司法考试改革后多少分