我需要优化BigInteger的toString()方法

时间:2014-05-01 09:15:39

标签: java tostring biginteger

我有一个非常大的数字(长度数是200000)。当我想打印这个号码时

System.out.println(myBigInt);

大量时间用于BigInteger数字的隐式调用方法toString()(约5秒)

你知道如何在控制台上打印biginteger吗?可能首先需要转换为字节数组,但我不知道接下来要做什么。

我需要在控制台上打印一个非常大的大整数然后

System.out.println(myBigInt);

1 个答案:

答案 0 :(得分:1)

默认情况下,System.out.print()只是行缓冲,并且与Unicode处理有很多相关的工作。由于其缓冲区大小较小,System.out.println()不适合在批处理模式下处理许多重复输出。每条线都立即冲洗。如果您的输出主要是基于ASCII的,那么通过删除与Unicode相关的活动,总体执行时间会更好。

您可以使用以下方法来提高速度。

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new
                     FileOutputStream(java.io.FileDescriptor.out), "ASCII"), 512);
out.write(String.valueOf(myBigInt));