Использование SuperCSV для изменения значений заголовков

В соответствии с этим сообщением о возможностях SuperCSV, может ли SuperCSV обрабатывать изменение значений заголовков (только имена столбцов) читать из базы данных?

Например, следующий фрагмент кода детализирует текущее состояние и ожидаемое состояние.

Текущее состояние

ВВОД:

final String[] header = new String[] { "firstName", "lastName", "birthDate"};

// write the header
beanWriter.writeHeader(header);

// write the beans
for( final CustomerBean customer : customers ) {
   beanWriter.write(customer, header, processors);
}

ВЫХОД: файл с именами столбцов:

firstName, lastName, birthDate
Bob      , Doe     , 02/12/2013  

Ожидаемое состояние

ВВОД:

final String[] header = new String[] { "firstName", "lastName", "birthDate"};

// write the header
beanWriter.writeHeader(header);

// write the beans
for( final CustomerBean customer : customers ) {
   beanWriter.write(customer, header, processors);
}

// modify the headers
 ??????

ВЫХОД: файл с измененными именами столбцов:

First Name, Last Name, Birthday
Bob      , Doe     , 02/12/2013 

Любая помощь приветствуется.


person todun    schedule 21.02.2014    source источник


Ответы (1)


Я не уверен, отвечает ли это на ваш вопрос, но вы можете поместить в заголовок все, что вам нравится - он не обязательно должен быть идентичен массиву сопоставления, переданному в beanWriter.write()

Например, следующее даст желаемый результат:

final String[] header = new String[] { "First Name", "Last Name", "Birthday"};
final String[] fieldMapping = new String[] { "firstName", "lastName", "birthDate"};

// write the header
beanWriter.writeHeader(header);

// write the beans
for( final CustomerBean customer : customers ) {
   beanWriter.write(customer, fieldMapping , processors);
}
person James Bassett    schedule 22.02.2014
comment
Спасибо! Как раз то, что мне было нужно. - person todun; 24.02.2014