Анализ файла CSV в Java, когда разделитель является частью данных
Я пишу части CSV. Это легко написать с помощью Java
String s = null
while( (s= bufferedReadr.readLine() !=null){
String parts[] = s.split(',');
//process parts
}
The problem is data is in format
"a", "b","c","d","e","f".
But some of the data is
"a" ,",b" ,"c",",a","e","f" .
РЕДАКТИРОВАТЬ
Дело в том, что я получаю одну строку ввода CSV из другого кода, который я не могу изменить.
Так что я получаю каждую строку в формате CSV. И я хочу разделить это. Я не могу использовать csvlibs, поскольку они анализируют весь файл и требуют дескриптор файла.
некоторые цитаты присутствуют с частями данных, что вызывает проблемы.
Как мне решить это? Любые открытые библиотеки src, которые я могу использовать?
2 ответа
Решение
Не разделяйте данные самостоятельно. Используйте одну из доступных библиотек, которые хорошо справляются с этой задачей. Например, посмотрите на opencsv.
Как говорят другие комментарии, используйте OpenCSV. Есть класс CSVReadr с этим конструктором
public CSVReader(Reader reader, char separator, char quotechar)
И такие методы, как readAll(), readNext(), ....
О Читателе, есть много разных вариантов: .., InputStreamReader, StringReader