私はファイルを読むことでいくつかの練習をしていますが、私は不平衡ファイルのためのファイルインターリーブコードを書くことが任されています。&&を||に変更する理由変数が見えなくなっています
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **&&** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
注& & ...しかし、私は||ためにそれを変更した場合:私はこのような設定のものを持っているので、もしそれが正常に動作しますNetBeansは(それは完全に罰金このようinputLine1を見ているが)inputLine2が初期化されていないと述べている:inputLine1は(これは、ファイルAからのデータである)最初のヌルになると今
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **||** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
を、私は他のすべての行を取得しますin 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);
}
}
'||'は短絡しています。代わりに '|'を試してください。 – shmosel
それはそれを得ました!ありがとう! 1つの愚かな小さな線......... –