readlineを使用したjavaネストされたwhileループ
-
06-07-2019 - |
質問
混乱しています。最初のファイルのすべての行の最初のトークンを見て、2番目のファイルのすべての行の3番目のトークンと比較する2つのファイルをループしようとしています。ネストされたwhileループの形式の論理構造は次のとおりです。
BufferedReader reader1 = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile1)));
BufferedReader reader2 = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile2),"EUC-JP"));
String line1, line2 = null;
String temp1, temp2 = null;
while ((line1=reader1.readLine()) != null)
{
StringTokenizer st1 = new StringTokenizer(line1);
temp1 = "U"+st1.nextToken();
while((line2=reader2.readLine()) != null)
{
StringTokenizer st2 = new StringTokenizer(line2);
temp2 = st2.nextToken();
temp2 = st2.nextToken();
temp2 = st2.nextToken();
if(temp2.equals(temp1));
{
System.out.println(temp1+" "+temp2);
}
}
}
ただし、出力に表示されるのは、最初のファイルの最初の行の最初のトークンと、&quot ;等しい"か否か。これは異なるエンコーディングに関係していますか?等しいテストに影響があることがわかりますが、なぜループが正しく動作しないのですか?
乾杯、 ブランドン
解決
それは; if
の背後if(temp2.equals(temp1));
ただし、外側のループ内でファイル2を再度開く必要があるため、期待どおりに動作しない可能性があります。そうしないと、ファイル1の最初の行でのみ正しく動作します
所属していません StackOverflow