如何将日语字段从CSV文件读取到java bean中



我尝试了几种流行的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时,我尝试将Charset设置为UTF-8, UTF-16和ISO-8859-1,但该集合从未正确填充。如调试器和System所示。输出字段包含垃圾,并且记录的数量经常是错误的。

  1. FileInputStream用于读取二进制数据流,如mp3或PNG。代替FIS,使用FileReader来读取字符流。
  2. 坦率地说:谁在乎你试着用什么充电器,如果它们不起作用?您需要弄清楚CSV文件实际上使用的编码,并在读取文件时设置编码。在使用FileReader时指定编码:

该类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的。要自己指定这些值,在FileInputStream上构造一个InputStreamReader。

相关内容

  • 没有找到相关文章

最新更新