Java IntelliJ IDEA-在不使用iterable的情况下计算表达式
假设我们在while循环的开始处有一个断点Java IntelliJ IDEA-在不使用iterable的情况下计算表达式,java,debugging,intellij-idea,Java,Debugging,Intellij Idea,假设我们在while循环的开始处有一个断点 while ((line = reader.readLine()) != null) { // do something with line } Bufferedreader读取器的InputStream具有[“只有一行”] 在IntelliJ IDEA中,计算(Ctrl+U)reader.readLine()将有效地消耗“只有一行”,当我从断点恢复时,while循环条件将失败,因为BufferedReader中没有更多的行 有没有办法在不消
while ((line = reader.readLine()) != null) {
// do something with line
}
Bufferedreader读取器的InputStream具有[“只有一行”]
在IntelliJ IDEA中,计算(Ctrl+U)reader.readLine()
将有效地消耗“只有一行”
,当我从断点恢复时,while循环条件将失败,因为BufferedReader中没有更多的行
有没有办法在不消耗实际行的情况下计算reader.readLine()
?计算表达式意味着执行它并查看结果,因此有效地reader.readLine()
总是消耗一行
但是,如果可以执行读取操作,您可能需要尝试ready()
方法,该方法将返回true
注意。如果读卡器即将达到EOF,ready()
将返回true
,因为可以执行读取操作,但会立即返回null
计算表达式意味着执行它并查看结果,因此有效地reader.readline()
将始终消耗一行
但是,如果可以执行读取操作,您可能需要尝试ready()
方法,该方法将返回true
注意。如果读卡器即将达到EOF,ready()
将返回true
,因为可以执行读取操作,但会立即返回null
如果在Eclipse中有一种在不使用流/读取器的情况下读取行的功能,我会感到惊讶
允许您在((line=reader.readLine())!=null){
时在第行设置断点并在进入循环之前检查line
的值的一种可能的解决方案是添加一个条件断点(在IntelliJCTRL-F8
中,该行后跟CTRL-SHIFT-F8
,或者右键单击断点图标)
这样,只要行
不为空,执行就会停止。如果在Eclipse中有一个功能可以在不使用流/读取器的情况下读取行,我会感到惊讶
允许您在((line=reader.readLine())!=null){
时在第行设置断点并在进入循环之前检查line
的值的一种可能的解决方案是添加一个条件断点(在IntelliJCTRL-F8
中,该行后跟CTRL-SHIFT-F8
,或者右键单击断点图标)
这样,只要line
不为空,执行就会停止。为什么不跳过这一行呢?那么要么你在循环中并且line!=null
,要么你就在循环后面并且line==null
。我模糊地记得Eclipse中的一个等价功能没有使用这一行,这会触发我问了一个关于IDEA的问题。在进入循环之前,非常方便地看到这行是否不是空的,同时,知道里面有什么值。为什么不跨过这行呢?那么要么你在循环中并且line!=null
,要么你就在循环后面并且line==null
。我模糊地说请记住,Eclipse中的一个等效功能没有使用该行,这引发了关于IDEA的问题。事先查看该行是否为空非常方便,同时,在进入循环之前知道其中的值。