У меня есть неполный файл 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 слова, чтобы сначала перечислить и присоединиться к двум спискам в конце? также не знайте, как программировать это
Взгляните на 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
Этот псевдоподобный код может помочь:
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-го элемента в строке
Я бы разобрал его в коллекцию, добавил ваши элементы, затем вывел обратно в csv.