У меня есть CSV-файл с 12 столбцами и прочитайте файл с классом CSVReader.CSVReader не может правильно прочитать строку
List<String[]> rows = reader.readAll();
Но я обнаружил, что некоторые строки [] имеют менее 12 элементов. Когда я отлаживался, я обнаружил, что это проблема текстового формата CSV.
Есть две проблемы:
Некоторые столбцы заканчиваются символом обратной косой черты.
Например,
"Column A content\", "Column B content"
будет рассматриваться как один столбец, так как\"
рассматривается как символ эвакуации.В некоторых ячейках содержится
\"
.Например, в одной строке, содержание колонка А является командная строка:
"d -R u+rwX \""${MYTMP}\"" > /dev/null 2>&1; rm -fr \""${MYTMP}\"" >"
Так что я не могу думать о хорошей стратегии замены, чтобы справиться с этой проблемой формата. (например заменить все \
с \\
, это работает для "contentA\","contentB"
ситуации, но не работают на \"
когда содержание ячейки)
Любые предложения? Также можно обсудить проблемы плохого форматирования и решения, которые вы испытывали в файлах CSV, чтобы Reader корректно читал.
Спасибо, я попробую, чтобы узнать, не приведет ли это к другим ошибкам. –