Сравните файлы CSV, выбрав совпадающие строки и вернув различия.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сравните файлы CSV, выбрав совпадающие строки и вернув различия.

Сообщение Anonymous »


У меня есть три файла CSV, которые я хочу использовать для построчного сравнения. Первый файл (QR.csv) не очень полезен. Фактически, сравнение будет выполняться для двух других файлов (PivotSegmentQuestion + PivotSegmentQuestionNCL). Моя цель — провести построчное сравнение двух файлов. Именно поэтому мне удалось прочитать файлы и интегрировать их в ArrayList.

Другая проблема заключается в том, что строки в двух файлах расположены в разном порядке, поэтому мне приходится выбирать их по-разному. В моем ArrayList есть четыре элемента, которые позволяют мне находить одинаковые строки между двумя файлами: «Вопрос», «Сегмент», «NomChamp», «FieldType».

Вернемся к цели первого CSV-файла: проверить, существует ли элемент «Вопросы» (для меня эта часть необязательна).

После того как я определил строки файла в двух документах, я хотел бы провести сравнение с другими оставшимися элементами, вернуть различия и ничего не сказать, если они равны.

Сравнить класс:

пакет ComparePivotSegment; импортировать java.io.BufferedReader; импортировать java.io.FileNotFoundException; импортировать java.io.FileReader; импортировать java.io.IOException; импортировать java.util.ArrayList; общественный класс ComparePivotSegment { public static void main(String[]args) { //Объявляем весь путь к файлу String sPathQr = "C:\\Users\\dervis.sahin\\Downloads\\QR.csv"; String sPathPivotSegmentNcl = "C:\\Users\\dervis.sahin\\Downloads\\PivotSegmentQuestionNCL.csv"; String sPathPivotSegment = "C:\\Users\\dervis.sahin\\Downloads\\PivotSegmentQuestion.csv"; //Чтение и сохранение данных из каждого файла ArrayList qrList = readAndPrintFileQr(sPathQr); ArrayList PivotSegmentNclList = readAndPrintPivotSegmentNcl(sPathPivotSegmentNcl); ArrayList PivotSegmentList = readAndPrintPivotSegment (sPathPivotSegment); //сравниваем элементы } //Метод чтения и печати файла QR частный статический ArrayList readAndPrintFileQr(String filePath){ ArrayList qrList = новый ArrayList(); попробуйте (читатель BufferedReader = новый BufferedReader (новый FileReader (filePath))) { Строковая линия = ""; линия = читатель.readLine(); while ((line = readLine())!= null) { Значения String[] = line.split(";"); if(values.length!=15) продолжить; Строковое досье = значения [0]; Строковый вопрос = значения [1]; Строка NomQuestion = значения [2]; Строковый индикаторRESTIT = значения [3]; Строка NomPremierServiceREST = значения [4]; Строка TypeAcces = значения [5]; Строковое описание = значения[6]; Строковое описание = значения [7]; Строка ContratServiceQR = значения [8]; Строковое приложение = значения [9]; Строка CodeBlocApplicatif = значения [10]; Строка IndicateurDeloc = значения [11]; Строка Объект = значения [12]; Строковые ресурсы = значения [13]; Строка LigneCodeSource = значения [14]; FileQr qr = новый FileQr (Досье, Вопрос, NomQuestion, IndicateurRESTIT, NomPremierServiceREST, TypeAcces, Описание, Fichier, ContratServiceQR, Приложение, CodeBlocApplicatif, IndicateurDeloc, Objet, Ressources, LigneCodeSource); qrList.add(qr); } } catch (FileNotFoundException e) { е.printStackTrace(); } catch (IOException e) { е.printStackTrace(); } вернуть qrList; } //Метод для чтения и печати PivotSegmentQuestionNCL частный статический ArrayList readAndPrintPivotSegmentNcl (String filePath) { ArrayList PivotSegmentNclList = новый ArrayList(); попробуйте (читатель BufferedReader = новый BufferedReader (новый FileReader(filePath))){ Строковая линия = ""; while ((line = readLine()) != null) { Значения String[] = line.split(";"); if (!(values.length>=13))продолжить; Строковое досье = значения [0]; Строковый вопрос = значения [1]; Строка NomQuestion = значения [2]; Строковый сегмент = значения [3]; String Sens = значения [4]; Строка PositionChamp = значения [5]; Строка NomChamp = значения [6]; Строка TypeChamp = значения [7]; String LongueurChamp = значения [8]; Строковое описание = значения[9]; Строка LibelleSegment = значения [10]; Строка NomChampJava = значения [11]; Строка NomSegmentJava = значения [12]; Строка ChampUtilise = ""; Строка ChampBanalise = ""; PivotSegmentNcl ncl = new PivotSegmentNcl(Dossier, Вопрос, NomQuestion, Segment, Sens, PositionChamp, NomChamp, TypeChamp, LongueurChamp, Описание, LibelleSegment, NomChampJava, NomSegmentJava, ChampUtilise, ChampBanalise ); PivotSegmentNclList.add(ncl); } } catch (FileNotFoundException e) { е.printStackTrace(); } catch (IOException e) { е.printStackTrace(); } вернуть PivotSegmentNclList; } //Метод для чтения и печати PivotSegmentQuestion частный статический ArrayList readAndPrintPivotSegment(String filePath){ ArrayList PivotSegmentList = новый ArrayList(); попробуйте (читатель BufferedReader = новый BufferedReader (новый FileReader (filePath))) { Строковая линия = ""; while((line = readLine())!=null) { Строковые [] значения = line.split(";"); if(!(values.length>=13)) продолжить; Строковое досье = значения [0]; Строковый вопрос = значения [1]; Строка NomQuestion = значения [2]; Строковый сегмент = значения [3]; String Sens = значения [4]; Строка PositionChamp = значения [5]; Строка NomChamp = значения [6]; Строка TypeChamp = значения [7]; String LongueurChamp = значения [8]; Строковое описание = значения[9]; Строка LibelleSegment = значения [10]; Строка NomChampJava = значения [11]; Строка NomSegmentJava = значения [12]; Строка ChampUtilise = ""; Строка ChampBanalise = ""; PivotSegment PivotSegment = новый PivotSegment(Dossier, Вопрос, NomQuestion, Segment, Sens, PositionChamp, NomChamp, TypeChamp, LongueurChamp, Описание, LibelleSegment, NomChampJava, NomSegmentJava, ChampUtilise, ChampBanalise); PivotSegmentList.add(пивотсегмент); } } catch (FileNotFoundException e) { е.printStackTrace(); } catch (IOException e) { е.printStackTrace(); } вернуть список сводных сегментов; } //Метод для сравнения } Класс файла Qr:

пакет ComparePivotSegment; общественный класс FileQr { публичное досье по строкам; публичный строковый вопрос; публичная строка getDossier() { вернуть Досье; } public void setDossier(String dossier) { Досье = досье; } публичная строка getQuestion() { возврат вопроса; } public void setQuestion (Строковый вопрос) { Вопрос = вопрос; } публичная строка getNomQuestion() { вернуть NomQuestion; } public void setNomQuestion (String nomQuestion) { NomQuestion = nomQuestion; } публичная строка getIndicateurRESTIT() { вернуть ИндикатурRESTIT; } общественная недействительность setIndicateurRESTIT (String pointurRESTIT) { ИндикаторRESTIT = индикаторurRESTIT; } публичная строка getNomPremierServiceREST() { вернуть NomPremierServiceREST; } public void setNomPremierServiceREST (String nomPremierServiceREST) ​​{ НомПремьерСервисREST = nomPremierServiceREST; } общественная строка getTypeAcces() { вернуть TypeAcces; } public void setTypeAcces (String typeAcces) { ТипДоступ = ТипДоступ; } публичная строка getDescription() { возврат Описание; } public void setDescription (Описание строки) { Описание = описание; } публичная строка getFichier() { вернуть Фишера; } public void setFichier(String fichier) { Фишер = фишер; } публичная строка getContratServiceQR() { вернуть ContratServiceQR; } public void setContratServiceQR (String contratServiceQR) { ContratServiceQR = contratServiceQR; } публичная строка getApplication() { вернуть Заявление; } public void setApplication (String application) { Приложение = Приложение; } публичная строка getCodeBlocApplicatif() { вернуть CodeBlocApplicatif; } public void setCodeBlocApplicatif (String codeBlocApplicatif) { CodeBlocApplicatif = codeBlocApplicatif; } общественная строка getIndicateurDeloc() { вернуть ИндикаурДелок; } public void setIndicateurDeloc (String pointurDeloc) { ИндикаторДелок = индикаторДелок; } публичная строка getObjet() { вернуть Объект; } public void setObjet (String objet) { Объект = объект; } общественная строка getRessource() { вернуть Ресурс; } public void setRessource(String ressource) { Ресурс = ресурс; } публичная строка getLigneCodeSource() { вернуть Лигнекодесаурце; } public void setLigneCodeSource (String ligneCodeSource) { ligneCodeSource = ligneCodeSource; } общедоступная строка NomQuestion; публичная строка IndicateurRESTIT; общедоступная строка NomPremierServiceREST; общедоступная строка TypeAcces; публичное описание строки; публичный String Fichier; общедоступная строка ContratServiceQR; общедоступное строковое приложение; общедоступная строка CodeBlocApplicatif; общественная строка IndicateurDeloc; общедоступный строковый объект; общедоступный строковый ресурс; общедоступная строка LigneCodeSource; public FileQr (досье строки, вопрос строки, строка NomQuestion, строка IndicateurRESTIT, строка NomPremierServiceREST, строка TypeAcces, описание строки, строка Fichier, строка ContratServiceQR, Строковое приложение, String CodeBlocApplicatif, String IndicateurDeloc, String Objet, String Ressource, String LigneCodeSource) { this.Досье = Досье; this.Вопрос = Вопрос; this.NomQuestion = NomQuestion; this.IndicateurRESTIT = IndicateurRESTIT; this.NomPremierServiceREST = NomPremierServiceREST; this.TypeAcces = TypeAcces; this.Description = Описание; this.Fichier = Fichier; this.ContratServiceQR = ContratServiceQR; это.Приложение = Приложение; this.CodeBlocApplicatif = CodeBlocApplicatif; this.IndicateurDeloc = IndicateurDeloc; this.Объект = Объект; this.Ressource = Ресурс; this.LigneCodeSource = LigneCodeSource; } } Класс PivotSegmentQuestion

пакет ComparePivotSegment; общественный класс PivotSegment { публичная строка getDossier() { вернуть Досье; } public void setDossier(String dossier) { Досье = досье; } публичная строка getQuestion() { возврат вопроса; } public void setQuestion (Строковый вопрос) { Вопрос = вопрос; } публичная строка getNomQuestion() { вернуть NomQuestion; } public void setNomQuestion (String nomQuestion) { NomQuestion = nomQuestion; } публичная строка getSegment() { возврат сегмента; } public void setSegment (строковый сегмент) { Сегмент = сегмент; } публичная строка getSens() { вернуть Сенс; } public void setSens(String sens) { Чувство = чувство; } общественная строка getPositionChamp() { вернуть PositionChamp; } public void setPositionChamp (String PositionChamp) { PositionChamp = PositionChamp; } публичная строка getNomChamp() { вернуть NomChamp; } public void setNomChamp (String nomChamp) { НомЧамп = НомЧамп; } публичная строка getTypeChamp() { вернуть TypeChamp; } public void setTypeChamp (String typeChamp) { ТипЧамп = ТипЧамп; } публичная строка getLongueurChamp() { вернуть LongueurChamp; } public void setLongueurChamp (String longueurChamp) { LongueurChamp = LongueurChamp; } публичная строка getDescription() { возврат Описание; } public void setDescription (Описание строки) { Описание = описание; } общественная строка getLibelleSegment() { вернуть LibelleSegment; } public void setLibelleSegment (String libelleSegment) { LibelleSegment = libelleSegment; } публичная строка getNomChampJava() { вернуть NomChampJava; } public void setNomChampJava (String nomChampJava) { NomChampJava = nomChampJava; } публичная строка getNomSegmentJava() { вернуть NomSegmentJava; } public void setNomSegmentJava (String nomSegmentJava) { NomSegmentJava = nomSegmentJava; } публичная строка getChampUtilise() { вернуть ChampUtilise; } public void setChampUtilise (String champUtilise) { ChampUtilise = champUtilise; } публичная строка getChampBanalise() { вернуть ЧемпБанализ; } public void setChampBanalise (String champBanalise) { ЧемпБанализ = ЧемпБанализ; } публичное досье по строкам; публичный строковый вопрос; общедоступная строка NomQuestion; общедоступный строковый сегмент; публичная строка Sens; общедоступная строка PositionChamp; публичная строка NomChamp; общедоступная строка TypeChamp; публичная строка LongueurChamp; публичное описание строки; публичная строка LibelleSegment; публичная строка NomChampJava; общедоступная строка NomSegmentJava; публичная строка ChampUtilise; общедоступная строка ChampBanalise; public PivotSegment (String Dossier, String Issue, String NomQuestion, String Segment, String Sens, String PositionChamp, String NomChamp, String TypeChamp, String LongueurChamp, String Description, String LibelleSegment, String NomChampJava, String NomSegmentJava, String ChampUtilise, Строка ChampBanalise) { this.Досье = Досье; this.Вопрос = Вопрос; this.NomQuestion = NomQuestion; this.Segment = Сегмент; this.Sens = Sens; this.PositionChamp = PositionChamp; this.NomChamp = NomChamp; this.TypeChamp = TypeChamp; this.LongueurChamp = LongueurChamp; this.Description = Описание; this.LibelleSegment = LibelleSegment; this.NomChampJava = NomChampJava; this.NomSegmentJava = NomSegmentJava; this.ChampUtilise = ChampUtilise; this.ChampBanalise = ChampBanalise; } } Класс PivotSegmentQuestionNCL аналогичен приведенному выше

Пример Qr.csv:


Изображение


pivotSegmentNcl:


Изображение


Сводный сегмент:


Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»