作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试了几种流行的 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 中可以看出,这些字段包含垃圾,并且记录数通常是错误的。
最佳答案
FileInputStream
用于读取二进制数据流,例如 mp3 或 PNG。使用FileReader
代替FIS
用于读取字符流。FileReader
时指定编码:The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream.
关于java - 如何将 CSV 文件中的日语字段读取到 java beans 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003333/
我是一名优秀的程序员,十分优秀!