Запись в одну ячейку в OPENcsv JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запись в одну ячейку в OPENcsv Java

Сообщение Anonymous »

Я пытаюсь получить возможность обновить одно значение в CSV. Структура данных: {Имя, оценка}. Учитывая имя, я хочу увеличить оценку на 1. У меня есть POJO и все настроено для получения необходимой информации, но моя проблема в том, что когда я пытаюсь записать в файл, он перезаписывает все или ничего. Я проверил свое чтение, чтобы убедиться, что оно правильно получает правильное имя, и, похоже, оно так и делает. Итак, я пытаюсь выяснить, как исправить функцию записи.
public static void updateCounter(String name){
int score = 0;

ArrayList namesArray = new ArrayList();
CSVParser parser = new CSVParserBuilder()
.withSeparator(',')
.withIgnoreQuotations(true)
.build();

try (Writer writer = new FileWriter("output.txt",true)) {
ColumnPositionMappingStrategy strategy = new ColumnPositionMappingStrategy();
StatefulBeanToCsv sbc = new StatefulBeanToCsvBuilder(writer)
.withSeparator(CSVWriter.DEFAULT_SEPARATOR)
.withMappingStrategy(strategy)
.build();
} catch (IOException e) {
throw new RuntimeException(e);
}

List beans;
try {
beans = new CsvToBeanBuilder(new FileReader("data.csv"))
.withType(Person.class)
.build()
.parse();
for(Person p : beans){
if(p.getName().equals(name)){
score = score = p.getscore() + 1;
}
}
CSVReader reader;
{
try {
String[] line;
reader = new CSVReader(new FileReader("data.csv"));
{
try {
while ((line = reader.readNext()) != null) {
for (String cell : line) {
if(cell.equals(name)){
BufferedWriter writer;
{
try {
writer = new BufferedWriter(new FileWriter("data.csv"));

writer.write(score);
writer.close();
} catch (IOException IOerr) {
throw new RuntimeException(IOerr);
}
}
}
}
}
} catch (CsvException ex) {
throw new RuntimeException(ex);
}
reader.close();
}
} catch (IOException IOerr) {
throw new RuntimeException(IOerr);
}
}
} catch (FileNotFoundException ex) {
throw new RuntimeException(ex);
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... encsv-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»