提取后,我为列值之一获得空值。以下程序有什么问题?

  • 本文关键字:程序 问题 空值 提取 opencsv
  • 更新时间 :
  • 英文 :


我得到null与IterableCSVToBean<MessageFileExtractHeader>

选定的列之一

DTO架势:

public class MessageFileExtractHeader implements Serializable {
    private static final long serialVersionUID = -3052197544136826142L;
    private String mesgid;
    private String mesg_type;
 // getters and setters

主类:

public class FileExtraction {
    public static void main(String[] args) throws IOException, IllegalAccessException, InvocationTargetException, InstantiationException, IntrospectionException, CsvBadConverterException, CsvDataTypeMismatchException, CsvRequiredFieldEmptyException, CsvConstraintViolationException {
        Properties prop = new Properties();
        ExtractFieldUtils efUtils= new ExtractFieldUtils();
        MessageFileExtractHeader msgFilxtractRecord = null;

        try {
              InputStream inputStream =
                      SAADumpFileExtraction.class.getClassLoader().getResourceAsStream("config.properties");
              prop.load(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String fileDirectory= prop.getProperty("file.directory");
            //get the filenames
            String mesgfilename= fileDirectory+prop.getProperty("mesg.file.name");

            //get the headers
            String mesgheader= fileDirectory+prop.getProperty("mesg.file.header.fields");

            int msgskiplines=1;

            CSVReader reader = null;
            try {
                reader = new CSVReader(new FileReader(mesgfilename));
                Map<String, String> msgmapping = efUtils.getMapping(mesgheader);
                HeaderColumnNameTranslateMappingStrategy<MessageFileExtractHeader> strategy = new HeaderColumnNameTranslateMappingStrategy<MessageFileExtractHeader>();
                strategy.setType(MessageFileExtractHeader.class);
                strategy.setColumnMapping(msgmapping);
                IterableCSVToBean<MessageFileExtractHeader> msgCTBIterator= new IterableCSVToBean<MessageFileExtractHeader>(reader, strategy, null);
                Iterator<MessageFileExtractHeader> mesgIterator= msgCTBIterator.iterator();
                while(mesgIterator.hasNext()){
                    msgFilxtractRecord = mesgIterator.next();
                    System.out.println(msgFilxtractRecord);

//                  
                }} finally {
                        reader.close();
                    }
                }               
}
输出:

MessageFileExtractHeaders [mesgid=null, mesg_type=081]

请给我一个好的解决方案来获取messgid。

请发送您的csv文件的简短示例(头和一行)和您的头属性的值。

我的猜测是在csv头中有一个类型,属性中的头或两者都有,它不匹配DTO (mesgid)中的内容。因此,它将不会有人居住。

相关内容

  • 没有找到相关文章

最新更新