Я работаю над написанием метода для моего диссон-бота , который записывает все данные члена в файл csv`.
Однако я изо всех сил пытаюсь сделать это, используя BeanToCsv
.Единственный вывод в файл - это заголовки и ничего больше.Я могу получить каждое поле от каждого объекта, как видно с отпечатками, каждое поле является String
.
Ранее я использовал CSVWriter
, который работал, но вместо этого выбрал возможность записи данных объекта.
public static void generateNewCSV(GuildMessageReceivedEvent event) throws IOException, CsvDataTypeMismatchException, CsvRequiredFieldEmptyException
{
Writer writer = new FileWriter(MEMBER_DATA_FILE_PATH);
List<User> users = new ArrayList<User>();
for(Member mem : event.getGuild().getMembers()) {
users.add(new User("\"" + mem.getUser().getId() + "\"", mem.getUser().getName(), mem.getEffectiveName(), mem.getRoles().toString()));
// System.out.println("id : " + users.get(users.size()-1).getUserId());
// System.out.println("name : " + users.get(users.size()-1).getUserName());
// System.out.println("nickname : " + users.get(users.size()-1).getUserNickname());
// System.out.println("roles : " + users.get(users.size()-1).GetUserRoles());
// System.out.println( "=============================");
}
ColumnPositionMappingStrategy<User> strategy = new ColumnPositionMappingStrategy<User>();
strategy.setType(User.class);
String[] columns = {"id", "name", "nickname", "roles"};
strategy.setColumnMapping(columns);
StatefulBeanToCsv<User> beanToCsv = new StatefulBeanToCsvBuilder<User>(writer)
.build();
beanToCsv.write(users);
writer.close();
users.clear();
System.out.println("save complete");
}
Единственный вывод в файл csv - это заданные заголовки, но ничего больше.Предполагается записать всю информацию, полученную от созданного пользовательского объекта.