以下是我的代码的快照,输入文件大小为 45 Mb
Scanner fileScanner = new Scanner(file);
String scannedFarm;
try{
Pattern p = Pattern.compile("^(?:.+(?:\\r?\\n|\\Z)){2,}",Pattern.MULTILINE);
while((scannedFarm = fileScanner.findWithinHorizon(p, 0)) != null){ // Throws Exception
...
...
我将添加任何其他信息,以阐明引发异常的原因。描述文件格式的相关问题可能会有所帮助:Java,正则表达式 HasNext 以空行开头,多平台支持。
顺便说一句:这适用于像魅力这样的小文件,在较大的文件中失败,字符串是否具有从 findWithinHorizon 返回的最大大小?
更新
根据要求,一个小的堆栈跟踪:
还有一个文件快照的小例子: