У меня есть два файла данных.Данные двойного типа.Файл один состоит из 3 столбцов и нескольких строк, а файл два состоит из 4 столбцов и нескольких строк.Я читаю данные из обоих файлов по отдельности в одной Java-программе, и данные первого столбца файла File1 сопоставляются с данными первого столбца файла File2, после чего появляется сообщение о том, что данные совпадают, иначе данные не совпадают.Мой код такой:
import java.io.File;
import java.util.Scanner;
public class F1 {
public static void main(String args[])throws Exception{
Scanner Y =new Scanner(new File("C:\\R5_M.txt"));
Scanner X =new Scanner(new File("C:\\R5_O.txt"));
double a=0.0,b=0.0,c,d=0.0,e=0.0,f,g,h;
if(a==d) {
while (X.hasNext()) {
a = X.nextDouble();
b = X.nextDouble();
c = X.nextDouble();
}
while (Y.hasNext()) {
d = Y.nextDouble();
e = Y.nextDouble();
f = Y.nextDouble();
g = Y.nextDouble();
}
System.out.println("They are matched");
}
else{
System.out.println("Not Matched");
}
}
}
Его вывод They are matched
только один раз.Но он должен записать вывод, равный количеству строк.Если у меня есть 10 строк в обоих файлах данных, и 6 данных совпадают, а 4 не совпадают, то я получаю вывод: Они сопоставляются 6 раз, а не сопоставляются 4 раза.
Одной очевидной причиной является то, что оба цикла заканчиваются в пределах этой области. Так что значения, которые изменяются для a, b, c, d, e, f, g, остаются в области действия, или я должен сказать, что они перезаписаныв каждой итерации и если я вызываю a и d за пределами цикла while, он возвращает только последнее значение в этом случае 10-е значение.Так, где я должен записать оператор if, чтобы сравнить каждое значение?