BeanToCsv不写入CSV文件

时间:2019-06-28 06:59:44

标签: java opencsv

我正在为自己的 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文件的唯一输出是给定的标头,但仅此而已。应该写入从创建的用户对象获得的所有信息。

1 个答案:

答案 0 :(得分:1)

没关系,我解决了我的问题。我从未使bean可序列化。