<< Сжатие изображений для ускорения сайта | На главную | Spring 3 + Hibernate 4 Lazy Intialize collections >>

StringTokenizer и csv

StringTokenizer обрабатывает несколько разделителей как один

Если нужно написать быструю обработку данных из csv файла, то первое что приходит на ум воспользоваться StringTokenizer. Но надо учитывать одну особенность этого класса - несколько разделителей он воспринимает как один. А в случае CSV-файла это приведёт к ошибке обработки пустых полей, поэтому лучше воспользоваться следующей конструкцией:

String row_fields[] = row.split("\t");
int fieldcntr =0;
String field1 = row_fields[fieldcntr++];
String field2 = row_fields[fieldcntr++];

Если же csv файл содержит строки, которые могут содержать в себе разделитель, то проще всего воспользоваться сторонней библиотекой, например:

OpenCSV

Обработка файла  в этом случае так же проста:

    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
    String [] nextLine;
    while ((nextLine = reader.readNext()) != null) {
        // nextLine[] is an array of values from the line
        System.out.println(nextLine[0] + nextLine[1] + "etc...");
    }

Ярлыки :



Комментировать Отправить TrackBack
На главную