매우 큰 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에 크기 제한이 없다고 생각하여 제 질문은 다음과 같습니다. 어떤 제한을 초과하고이 문제를 해결할 수있는 방법이 있습니까?
편집 : 플러시와 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
편집 : Eclipse에서 프로그램을 실행할 때 문제가 발생, 내가 외부 항아리에 수출을 시도하고, 모든 것이 잘 작동했습니다. Eclipse Mars.1 Release (4.5.1) 및 Java jre1.8.0_131 및 Cp1252 인코딩을 사용하고 있습니다.
FYI (안 OS 캐시) 파일의 높이가 : _i 그래서'정수, BigInteger를이 크기가 배열의 크기에 제한이 있습니다 limit_하지 않았다 생각했다. MAX_VALUE' (일부 값 빼기) 숫자입니다. 그러나 그 지수로, 당신은 괜찮을 것입니다 ... – AxelH
나는 당신의 코드를 테스트했고 나의 파일은 correct.7056KB입니다 ... – AxelH
@AxelH 왜 그것이 당신을 위해, 그리고 나를 위해 일하지 않는지 아십니까? – Rudy