日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题

發(fā)布時(shí)間:2024/1/23 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考資料: opencsv文檔

寫下本文時(shí)最新版的opencsv版本為4.0, maven坐標(biāo)如下:

com.opencsv

opencsv

4.0

測(cè)試用test.csv

id,date,name

1,2017-10-11,amy

2,2017-10-12,啊

與csv文件對(duì)應(yīng)的java bean

public class TestBean {

// 通過屬性名綁定csv列名, 屬性名必須與csv列名相同

@CsvBindByName

private Integer id;

// 解析Date格式

@CsvBindByName

@CsvDate("yyyy-MM-dd")

private Date date;

// csv列名與字段名不同時(shí)

@CsvBindByName(column = "name")

private String name;

// csv不存在列名時(shí)也可通過位置綁定, 如 `@CsvBindByPosition(position = 0) `

// getter, setter and toString() ...

}

使用opencsv解析

public class CsvParser {

public static void main(String[] args) throws IOException {

String path = "test.csv";

List beans = new CsvToBeanBuilder(new FileReader(path))

.withType(TestBean.class).build().parse();

System.out.println(beans);

}

}

結(jié)果中中文顯示亂碼

[TestBean [id=1, date=Wed Oct 11 00:00:00 CST 2017, name=amy],

TestBean [id=2, date=Thu Oct 12 00:00:00 CST 2017, name=��]]

由于FileReader無法指定字符編碼, 此時(shí)應(yīng)當(dāng)使用InputStreamReader設(shè)置字符編碼

public class CsvParser {

public static void main(String[] args) throws IllegalStateException, IOException {

String path = "test.csv";

String charset = "utf-8";

FileInputStream fileInputStream = new FileInputStream(path);

Reader reader = new InputStreamReader(fileInputStream, charset);

List beans = new CsvToBeanBuilder(reader)

.withType(TestBean.class).build().parse();

System.out.println(beans);

}

}

從結(jié)果來看, 中文解析以及正常了

[TestBean [id=1, date=Wed Oct 11 00:00:00 CST 2017, name=amy],

TestBean [id=2, date=Thu Oct 12 00:00:00 CST 2017, name=啊]]

實(shí)際上csv列名為中文時(shí), 只要在bean中對(duì)應(yīng)屬性配置了@CsvBindByName(column = "中文列名")也是可以解析的

總結(jié)

以上是生活随笔為你收集整理的java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。