我有一个 2.5 GB 的文件,我试图用 Java 中的 Antlr 解析它。首先我有一个内存不足的异常,所以我增加了最大堆大小。然后它失败了这个堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.lang.NegativeArraySizeException
at java.util.Arrays.copyOf(Arrays.java:2882)
at org.antlr.v4.runtime.ANTLRInputStream.load(ANTLRInputStream.java:123)
at org.antlr.v4.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:86)
at org.antlr.v4.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:78)
at MyClass.runAntlr(MyClass.java)
我的猜测是某些索引变量溢出。
是否有可以处理任意大文件的输入流?还是 ANTLRInputStream 的更大文件?