私はいくつかの人気のあるCSVからJavaへのデシリアライザー(OpenCSV、JSefa、およびSmooks)を試しましたが、ファイルを正しく読み取るものはありませんでした。
First Name,Last Name
エリック,山中
花子,鈴木
一郎,鈴木
裕子,田中
政治,山村
私のJavaオブジェクトコレクションに。
OpenCsvコード:
HeaderColumnNameTranslateMappingStrategy<Contact> strat = new HeaderColumnNameTranslateMappingStrategy<Contact>();
strat.setType(Contact.class);
strat.setColumnMapping(colNameTranslateMap);
InputStreamReader fileReader=null;
CsvToBean<Contact> csv = new CsvToBean<Contact>();
fileReader = new InputStreamReader(new FileInputStream(file), "UTF-8");
contacts = csv.parse(strat, new CSVReader(fileReader));
FileInputStreamを作成するときに、文字セットをUTF-8、UTF-16、およびISO-8859-1に設定しようとしましたが、コレクションが正しく入力されません。デバッガーとSystem.outに見られるように、フィールドにはガベージが含まれており、多くの場合、レコードの数が間違っています。