【发布时间】:2017-08-31 19:31:23
【问题描述】:
我正在做一些阅读文件的练习,我的任务是为不平衡的文件编写文件交错代码。所以如果我有这样的设置,它就可以正常工作:
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **&&** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
注意 &&... 但如果我将其更改为 || netbeans 声明 inputLine2 尚未初始化(尽管它以这种方式看到 inputLine1 非常好):
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **||** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
现在,如果 inputLine1(这是来自文件 A 的数据)首先变为 null,我只会在 inputLine2(来自文件 B)中获取每隔一行。在每次循环迭代中,它都会跳过一行。我相当肯定这与我初始化 inputLine2.. 的位置有关:
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null || LineSequential.read(inFileStreamName2) != null) {
inputLine2 = LineSequential.read(inFileStreamName2);
System.out.println(inputLine2);
if(inputLine1 != null && inputLine2 == null){
LineSequential.write(outFileStreamName, inputLine1);
}else if(inputLine1 == null && inputLine2 != null){
LineSequential.write(outFileStreamName, inputLine2);
}
else if(inputLine1 != null && inputLine2 != null){
LineSequential.write(outFileStreamName, inputLine1);
LineSequential.write(outFileStreamName, inputLine2);
}
}
【问题讨论】:
-
||短路。请改用|。 -
明白了!谢谢!一条傻乎乎的小线…………
标签: java file loops while-loop