2015-03-30 3 views
0

Мне нужна ваша помощь здесь. Попытка выяснить, есть ли лучшее решение, чем манипулирование данными в текстовом файле.читать csv файл с новым символом строки как данные java

Итак, у меня есть файл csv, в котором некоторые данные имеют в нем новые строковые символы. Этот файл создается на портале salesforce.

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

BufferedReader bReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 
    line = bReader.readLine() 

интерпретирует новую строку в данных как конец строки. в результате эта линия переводится как 2 строки. Любая идея, как обрабатывать такие данные во время чтения файла.

Любые идеи были бы высоко оценены.

Спасибо.

+0

Вы пробовали обрезку 'line' и проверку, если она пуста? if so - 'continue;' – vikingsteve

+1

Вопрос для его решения: откуда вы знаете, что символ новой строки является частью данных вместо реальной новой строки в вашем CSV. если вы знаете ответ на этот вопрос, вы можете разработать решение, иначе вы не сможете – moffeltje

ответ

1

Я предполагаю, что вы уже знаете ответ на вопрос о moffeltje, чтобы определить, какая действительно действительная строка новой строки и какой из них встроен. Если это так, вы можете использовать opencsv

Одна из функций, которая имеет «Обработка цитируемых записей со встроенными возвратами каретки (т.е. записей, которые охватывают несколько строк)». Это может помочь вам решить проблему.

+0

Согласовано. Если вы спросите меня, лучший ответ - не пытаться решить эту проблему самостоятельно, поскольку она уже решена много раз. Используйте одну из многих доступных CSV-библиотек и не думайте много о том, как она работает, если она вам не нужна. –

+0

Да, я читал о opsencsv. но я подумал, можно ли это сделать без этой библиотеки. – shirjai

0

Другой подход, который я могу придумать, - сравнить последний символ линии. каждое значение в .csv находится в кавычках. поэтому, если последний символ не является цитатой, добавьте следующую строку к этому, пока не будет определена цитата.

Смежные вопросы