OpenCSV CSVReader CSVWriter Пример

OpenCSV CSVReader и CSVWriter: Пълен наръчник с примери

Въведение

OpenCSV е популярна Java библиотека, която осигурява лесен и ефективен начин за четене и записване на данни във формат CSV (Comma Separated Values). CSV е широко използван текстов формат, който се състои от данни, разделени със запетаи, като всяка стойност е поставена в кавички. Това го прави удобен за обмен на данни между различни системи и приложения.

  Как да изтрия GitHub хранилище?

OpenCSV осигурява два основни класа: CSVReader за четене на данни от CSV файл и CSVWriter за записване на данни в CSV файл. Тези класове предлагат богат набор от функции, които ви позволяват да персонализирате процеса на четене и записване в съответствие с вашите специфични нужди.

Четене на данни с CSVReader

За да прочетете данни от CSV файл, можете да използвате класа CSVReader. Той предоставя няколко конструктора, които позволяват да създадете клас, като посочите входен поток, разделител, заключващ символ и др. След като създадете клас, можете да използвате метода readNext() за прочитане на следващия ред от CSV файла. Този метод връща масив от низове, представляващи стойностите във файла, разделени от разделителя.

java
CSVReader reader = new CSVReader(new FileReader("данни.csv"), ',');
String[] данни;
while ((данни = reader.readNext()) != null) {
// Обработка на данните от CSV реда
}
reader.close();

Конфигуриране на CSVReader

Можете да конфигурирате CSVReader чрез неговите различни методи, за да контролирате как данните се четат. Някои от ключовите методи включват:

setSkipLines(int skipLines): Прескачане на определен брой редове в началото на файла.
setQuoteChar(char quoteChar): Задаване на символа за котиране, използван за заобикаляне на стойности.
setEscapeChar(char escapeChar): Задаване на екранирания символ, използван за екраниране на специфични символи.
setComment(char comment): Задаване на символ за коментар, който се използва за обозначаване на редове за коментар.

  Какво е Fortify SCA и как да го инсталирате?

Записване на данни с CSVWriter

За да запишете данни в CSV файл, можете да използвате класа CSVWriter. Подобно на CSVReader, той също има множество конструктори, които ви позволяват да създадете екземпляр, подавайки изходен поток, разделител, заключващ символ и т.н. Един път създаден, можете да използвате метода writeNext() за записване на масив от низове в CSV файла.

java
CSVWriter writer = new CSVWriter(new FileWriter("данни.csv"), ',');
String[] данни = {"стойност 1", "стойност 2", "стойност 3"};
writer.writeNext(данни);
writer.close();

Конфигуриране на CSVWriter

Можете да конфигурирате CSVWriter чрез неговите методи, за да контролирате как данните се записват. Някои от важните методи включват:

setQuoteChar(char quoteChar): Задаване на символа за котиране, използван за заобикаляне на стойности.
setEscapeChar(char escapeChar): Задаване на екранирания символ, използван за екраниране на специфични символи.
setForceQuote(boolean forceQuote): Принудително котиране на всички стойности.
setAlwaysQuote(boolean alwaysQuote): Винаги котиране на всички стойности, дори ако не съдържат специални символи.

Примери

Четене на CSV файл

java
public static void четиCSVФайл() throws IOException {
CSVReader reader = new CSVReader(new FileReader("данни.csv"));
String[] данни;
while ((данни = reader.readNext()) != null) {
System.out.println(Arrays.toString(данни));
}
reader.close();
}

Записване в CSV файл

java
public static void записвайCSVФайл() throws IOException {
CSVWriter writer = new CSVWriter(new FileWriter("данни.csv"));
String[] данни = {"стойност 1", "стойност 2", "стойност 3"};
writer.writeNext(данни);
writer.close();
}

Обработка на CSV файл с пропуснати редове и коментари

java
public static void обработвайCSVФайлСПропуснатиРедовеИКоментари() throws IOException {
CSVReader reader = new CSVReader(new FileReader("данни.csv"));
reader.setSkipLines(1); // Пропуска първия ред
reader.setComment('#'); // Задава '#' като символ за коментар
String[] данни;
while ((данни = reader.readNext()) != null) {
if (данни.length > 0 && данни[0].charAt(0) != '#') {
// Обработка на данните от CSV реда
}
}
reader.close();
}

Заключение

OpenCSV е мощен и универсален инструмент за работа с CSV данни в Java. Класовете CSVReader и CSVWriter предоставят лесен и персонализиран начин за четене и записване на данни, като ви позволяват да обработвате CSV файлове ефективно. Независимо дали искате да извличате данни от CSV файл или да създавате такива, OpenCSV е идеалното решение за вашите нужди за работа с данни.

  Как да настроите Fathom Lite за анализ на вашия уебсайт

Често задавани въпроси

Какъв е разделителят по подразбиране в OpenCSV?

– Запетая(‘,’)

Мога ли да персонализирам символа за котиране в CSVWriter?

– Да, можете да използвате метода setQuoteChar().

Как да избегна котирането на всички стойности в CSVWriter?

– Използвайте метода setAlwaysQuote(false).

Как да пропусна първия ред в CSV файл при четене с CSVReader?

– Използвайте метода setSkipLines(1).

Мога ли да прикачвам данни към съществуващ CSV файл с CSVWriter?

– Да, отворете файла в режим „append“ с помощта на конструктора на CSVWriter.

Как да идентифицирам и пропусна коментарните редове в CSV файл?

– Задайте символ за коментар с помощта на метода setComment(), а при четене проверявайте първия символ от реда.

OpenCSV поддържа ли четене и записване на данни със запетаи като част от стойността?

– Да, можете да използвате екранирания символ за обработка на такива стойности.

Мога ли да използвам OpenCSV за анализ на големи CSV файлове?

– Да, OpenCSV осигурява ефективни методи за парсиране на големи файлове, като parse() и parseLine().

Поддържа ли OpenCSV персонализирани разделители, като точка с запетая или табулация?

– Да, можете да зададете разделителя с помощта на конструкторите на CSVReader и CSVWriter.