我想印出1000 000 000至1 999 999 999。我认为这将是一个简单的任务,但eclipse告诉我一些关于内存错误。我怎么能这么做?我想要一个文本数据,从1000000000到1999999999的所有数字都写在一个新的行中。我认为在控制台中打印出来,然后将其复制粘贴到.txt数据中就可以了,但遗憾的是,它不能。
我的代码:
public static void main(String[] args) {
int number = 1000000000;
do {
System.out.println(number);
number = number +1;
} while (number < 2000000000);
}你怎么解决这个问题?请帮帮我。
发布于 2018-10-06 03:10:46
我刚刚编写了这段代码,通过运行它,我得到了以下结果:
发布于 2018-10-06 03:09:25
您遇到的问题是,您要求Eclipse在内存中缓冲1,000,000,000 x 11或12个字符。即> 20 GB,对于Eclipse进程堆来说,它显然太大了。
这种方法根本行不通,除非你在一个拥有大量RAM的高端PC上运行Eclipse。即使如此,我也有疑虑。例如,复制和粘贴100亿个字符可能无法工作。
您需要采取另一种方法;例如,让应用程序将数字直接写入输出文件。
发布于 2018-10-06 02:59:33
最好从命令行运行类文件并重定向输出。假设你是在“单一”环境下运行的。
java Counter > output.txt # This will take lot of time.
https://stackoverflow.com/questions/52675283
复制相似问题