非常に大きなBigIntegerを.txtファイルに印刷しようとしていますが、数値が一定のサイズに達すると何も印刷されません。コード:非常に大きなBigIntegerをJavaのファイルに出力する
BigInteger bi = new BigInteger("16777216");
int exponent = 1000000;
bi = bi.pow(exponent);
String txtToPrint = bi.toString();
sendToFile(txtToPrint, "output.txt");
private static void sendToFile(String txtToPrint, String fileName) {
try {
FileWriter fileWriter = new FileWriter(fileName);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(txtToPrint);
bufferedWriter.close();
}
catch(IOException e) {
System.out.println("Error writing to file '" + fileName + "'");
}
}
指数が566より大きい場合は常に、数値を含む代わりに出力ファイルが空になります。目標は1 000 000、またはそれ以上の指数を持つことです。
私はBigIntegerにサイズ制限がないと思ったので、私の質問は次のとおりです。これを超えると、この問題を解決する方法はありますか?
EDIT:フラッシュしてFileWriterを閉じようとすると、私はこの例外を得た:
java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at PrintInt.main(PrintInt.java:4
EDIT:Eclipseでプログラムを実行するときに問題が発生し、私は外部のjarファイルにエクスポートしようとした、とすべてがうまくいった。私はEclipse Mars.1 Release(4.5.1)とJava jre1.8.0_131とCp1252エンコーディングを使用しています。
FYI(いないOSのキャッシュに)ファイル内のflushです:_Iはとても '整数、BigIntegerのサイズは、配列の大きさには限界があるlimit_持っていなかったと思いました。 MAX_VALUE'(ある値からマイナス)桁です。しかし、その指数で、あなたはOKであるべきです... – AxelH
私はあなたのコードをテストし、私のファイルはcorrect.7056KBです... – AxelH
@AxelHなぜそれがあなたのためではなく、私のために働いているのか分かりますか? – Rudy