что лучший способ состоит в том, чтобы отредактировать файл CSV

У меня есть неполный файл CSV, который должен быть точно обновлен, таким образом, существует файл CSV как это:

one,two,three,four,five,six,seven,eight,nine,ten //This is a line(String)

Естественно файл намного более сложен, но в этом формате, здесь - то, что я хочу сделать, вставляют new-word,new-word1, new-word3 или n слова между семь и восемь (или любой диапазон). Как я могу сделать это?

Псевдокод, код или пример были бы большими, у меня нет подсказки, как даже запустить.

ОБНОВЛЕНИЕ:

Возможно, я должен преобразовать это для выстраивания или некоторый datastructure. Затем вставьте новый объект в определенном положении, остальная часть сдвига права на контент и сделайте это для каждой вставки.

Я не знаю, ли правильный способ пойти или как начать программировать его

ОБНОВЛЕНИЕ II:

Возможно, читайте в csv в списке, разделите список на два списка, сначала одно окончание семь. Затем добавьте n слова, чтобы сначала перечислить и присоединиться к двум спискам в конце? также не знайте, как программировать это

9
задан Gandalf StormCrow 24 June 2010 в 03:45
поделиться

3 ответа

Взгляните на OpenCSV .

ОБНОВЛЕНИЕ: вот некоторый (едва ли) псевдокод, чтобы дать общее представление о том, как вы будете использовать OpenCSV для этого:

CSVReader reader = new CSVReader(new FileReader("old.csv"));
CSVWriter writer = new CSVWriter(new FileWriter("new.csv"));
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
    List<String> lineAsList = new ArrayList<String>(Arrays.asList(nextLine));
    // Add stuff using linesAsList.add(index, newValue) as many times as you need.
    writer.writeNext(lineAsList.toArray());
}

Подсказка: @Mark Peters, который указывает, что вы не можете обновить результаты Arrays.asList

6
ответ дан 3 November 2019 в 04:40
поделиться
​​

Этот псевдоподобный код может помочь:

List values = Arrays.asList(line.split(",\s*"));
List newWords = Arrays.aList(newWordsLine.split(",\s*"));

values.addAll(7,newWords);

StringBuffer buf = new StringBuffer(values.get(0));
for(v : values.subList(1,values.size()) {
    buf.append(",",v);
}
return buf.toString();

это вставит новые слова после 7-го элемента в строке

1
ответ дан 3 November 2019 в 04:40
поделиться

Я бы разобрал его в коллекцию, добавил ваши элементы, затем вывел обратно в csv.

0
ответ дан 3 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: