Java终止于if语句,退出值为0



我有一个程序,它使用while循环(条件为bufferedReader.readLine()!=null)从文件中读取行(包含两行),为myJSONObject分配一个从文件读取的JSON,然后我有一条if语句(if(bufferedReader.readLine()!=null&&!bufferedReader.readline.matches(DELETE_REGEX)),如果这是真的(即,如果我们读取的行不是null,并且我们不匹配正则表达式),然后对JSON执行一些函数,该函数应该将新的JSON附加到文件中。

我把这个放在一些试抓块里。看起来有点像:

try{
openFiles;
while(buff.readLine()!=null){
try {
instatiateAndUseJSONParser;
if(bufferedReader.readLine()!=null
&&!bufferedReader.readline.matches(DELETE_REGEX)) 
{doSomeStuff;}
else
{continue;}
} catch (AllTheExceptions e){e.printStackTrace}
}
closeFiles;
}catch(SomeMoreExceptions e){e.printStackTrace}

当我运行时,它会到达iff语句,然后以退出值0终止(程序正常关闭)

为什么会这样?它不会接近"继续"或catch块。

如果我删除第二行,由于String Reader的第50行,我会得到一个NullPointerException,但我没有使用StringReader(我尝试过导入它,但eclipse黄色下划线将其删除,这不会改变任何内容)。调试时,它会弹出一个StringReader.<init>(String) line: 50的选项卡,只显示"找不到源"。

我对Java还很陌生,所以我真的不知道发生了什么。如有任何帮助,我们将不胜感激。

谢谢!

每次调用readLine()时,都会读取一行新行。因此,您可以在当前代码中每次迭代读取3行。您应该将第一次调用的结果分配给一个变量,并使用这个变量:

String line = null;
while ((line = buff.readLine()) !=null) {
try {
instatiateAndUseJSONParser;
if (line.matches(DELETE_REGEX)) {
doSomeStuff;
}
} 
catch (AllTheExceptions e){
throw new RuntimeException(e);
}
}

你也应该避免吞下异常。

相关内容

  • 没有找到相关文章

最新更新