我正在为自己的 discord bot 编写一种方法,该方法将所有成员数据写入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文件的唯一输出是给定的标头,但仅此而已。应该写入从创建的用户对象获得的所有信息。
答案 0 :(得分:1)
没关系,我解决了我的问题。我从未使bean可序列化。