gpt4 book ai didi

java - 整数超出 2147447602 值

转载 作者:行者123 更新时间:2023-12-01 04:16:53 25 4
gpt4 key购买 nike

我正在 Netbean 中运行 SAX 解析器来提取 1GB 的 XML 数据并写入 CSV 文件。当我使用小于 1MB 的测试数据时,我的程序运行完美。代码运行后显示出我预期的打印输出,并且生成的 CSV 文件是正确的。接下来我使用 1GB XML 运行我的代码。代码运行并显示预期输出大约 30 分钟(它能够成功读取 XML 中的第 105439 行),之后,输出停止显示。在 Netbean 的底部,它表示程序正在运行,尽管绿色条停止了流动。这又持续了半个小时的虚无。然后我注意到这个错误:

java.lang.IllegalArgumentException:Contents must be presorted - added value -2146647068is less than preceding value 2147447602 at org.netbeans.core.output2.IntList.add(IntList.java:76) at org.netbeans.core.output2.AbstractLines.lineUpdated(AbstractLines.java:764) at org.netbeans.core.output2.OutWriter.write(OutWriter.java:216) at org.netbeans.core.output2.OutWriter.doWrite(OutWriter.java:453) at org.netbeans.core.output2.OutWriter.println(OutWriter.java:488) at org.netbeans.core.output2.OutWriter.print(OutWriter.java:526) at org.netbeans.core.output2.NbIO$IOColorLinesImpl.println(NbIO.java:494) at org.openide.windows.IOColorLines.println(IOColorLines.java:88) at org.apache.tools.ant.module.run.StandardLogger.formatColoredMessageWithTime(StandardLogger.java:353) at org.apache.tools.ant.module.run.StandardLogger.buildFinished(StandardLogger.java:318)[catch] at org.apache.tools.ant.module.bridge.impl.NbBuildLogger.buildFinished(NbBuildLogger.java:440) at org.apache.tools.ant.Project.fireBuildFinished(Project.java:2093) at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:290) at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:541) at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)

有人告诉我,在我的代码中的某个地方,一个整数循环直到其最大值并溢出。问题是我找不到导致此问题的整数。我怀疑这可能与我的 TreeSet 有关,但我并没有真正使用这么大的数字,除非我弄错了。以下超链接是我的代码 dblp.java。抱歉代码太长,但请跳转到方法 populateAuthorArray(...)。它由 endElement(...) 调用。请帮助我停止我的错误。谢谢 http://www.sendspace.com/file/5z06yr

最佳答案

我要在这里猜测一下,下一个数字应该大于前一个值 2147447602,但它大于最大整数值 2,147,483,647。

您的整数溢出了 32 位有符号 int 值,因此它变成了负数。如果可以的话,尝试使用 long,最多可达 9,223,372,036,854,775,807。

这是 Data Types 的引用

希望这有帮助

关于java - 整数超出 2147447602 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com