Java Read CSV File In Java With OpenCSV library 以及中文件乱码解决, Mapping CSV with Java beans
来源:互联网 发布:平面图制作软件 编辑:程序博客网 时间:2024/06/02 09:31
sample.csv文件:
COUNTRY,CAPITAL,POPULATIONIndia,New Delhi, 1.21BPeople's republic of China,Beijing, 1.34BUnited States,Washington D.C., 0.31B
package com.jiangge.csv.opencsvtest;import java.io.FileReader;import java.io.IOException;import au.com.bytecode.opencsv.CSVReader;//COUNTRY,CAPITAL,POPULATION//India,New Delhi, 1.21B//People's republic of China,Beijing, 1.34B//United States,Washington D.C., 0.31B/** * use readNext() method of CSVReader class to read CSV file line by line. * It returns a String array for each value in row. */public class ReadLineByLine {public static void main(String[] args) throws IOException {String csvFilename = "C:\\sample.csv";CSVReader csvReader = new CSVReader(new FileReader(csvFilename));String[] row = null;while((row = csvReader.readNext()) != null) { System.out.println(row[0] + " # " + row[1] + " # " + row[2]);}//...csvReader.close();}}
输出结果:
COUNTRY # CAPITAL # POPULATIONIndia # New Delhi # 1.21BPeople's republic of China # Beijing # 1.34BUnited States # Washington D.C. # 0.31B
package com.jiangge.csv.opencsvtest;import java.io.FileReader;import java.io.IOException;import java.util.List;import au.com.bytecode.opencsv.CSVReader;//COUNTRY,CAPITAL,POPULATION//India,New Delhi, 1.21B//People's republic of China,Beijing, 1.34B//United States,Washington D.C., 0.31B/** * read full CSV file once. The readAll() method of CSVReader class comes handy for this. * The readAll() method returns a List of String[] for given CSV file. * @author jiangge */public class ReadAllTest {public static void main(String[] args) throws IOException {String[] row = null;String csvFilename = "C:\\sample.csv"; CSVReader csvReader = new CSVReader(new FileReader(csvFilename));List content = csvReader.readAll(); for (Object object : content) { row = (String[]) object; System.out.println(row[0] + " # " + row[1]+ " # " + row[2]);}//...csvReader.close();}}
输出结果:
COUNTRY # CAPITAL # POPULATIONIndia # New Delhi # 1.21BPeople's republic of China # Beijing # 1.34BUnited States # Washington D.C. # 0.31B
三. 使用其他的分隔符号, 和跳过某些行--具体解释看这里:点击打开链接
CSVReader reader = new CSVReader(new FileReader(file), ';')
CSVReader reader = new CSVReader(new FileReader(file), '#')
跳过前5行,从第6行开始:
CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 5);
四.Mapping CSV with Java beans
1.java bean
package com.jiangge.csv.opencsvtest;public class Country {private String countryName;private String capital;private String population;public String getPopulation() {return population;}public void setPopulation(String population) {this.population = population;}public String getCountryName() {return countryName;}public void setCountryName(String countryName) {this.countryName = countryName;}public String getCapital() {return capital;}public void setCapital(String capital) {this.capital = capital;}}
package com.jiangge.csv.opencsvtest;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.InputStreamReader;import java.util.List;import au.com.bytecode.opencsv.CSVReader;import au.com.bytecode.opencsv.bean.ColumnPositionMappingStrategy;import au.com.bytecode.opencsv.bean.CsvToBean;//COUNTRY,CAPITAL,POPULATION//India,New Delhi, 1.21B//People's republic of China,Beijing, 1.34B//United States,Washington D.C., 0.31B/** * map this bean(Country.java) with Opencsv and read the CSV file. Check out below example: * @author jiangge */public class JavaBeanMapWithCSV {public static void main(String[] args) throws FileNotFoundException {ColumnPositionMappingStrategy strategy = new ColumnPositionMappingStrategy();strategy.setType(Country.class); // 关联JavaBeanString[] columns = new String[] {"countryName", "capital"}; // the fields to bind do in your JavaBean,JavaBean里的类变量属性strategy.setColumnMapping(columns);CsvToBean csv = new CsvToBean();String csvFilename = "C:\\sample.csv";CSVReader csvReader = new CSVReader(new FileReader(csvFilename));// DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFilename)));// csvReader = new CSVReader(new InputStreamReader(in,"utf-8"),',', '\'', 1); //这两行注释掉的内容可以解决中文乱码问题 List list = csv.parse(strategy, csvReader);for (Object object : list) {Country country = (Country) object;System.out.println(country.getCapital());}}}
输出结果:
CAPITALNew DelhiBeijingWashington D.C.
DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFilename)));csvReader = new CSVReader(new InputStreamReader(in,"utf-8"),',', '\'', 1); //这两行注释掉的内容可以解决中文乱码问题
如果想让 属性为 int类型,该如何办呢?参考我这篇文章:http://blog.csdn.net/xiaowanggedege/article/details/17799049
参考资料:
http://viralpatel.net/blogs/java-read-write-csv-file/
0 0
- Java Read CSV File In Java With OpenCSV library 以及中文件乱码解决, Mapping CSV with Java beans
- Java Read CSV File In Java With OpenCSV library, int filed 属性为 int类型
- Java CSV读--Read And Parse CSV File In Java
- Java导入csv文件以及解决中文乱码
- How to read and parse CSV file in Java
- OpenCSV处理csv的java工具
- Java读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- Java:读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- Java读写CSV格式文件(opencsv)
- opencsv在解析csv时中文乱码问题的解决(opencsv-3.8.jar)
- 解决java下载csv中文乱码(加BOM头)
- java 解析csv文件例子,csv文件 中文乱码问题
- Java里面读取csv文件中文乱码
- 如何查找只有图片的文章?
- debian下python的基本安装
- JSP中的include的两种用法
- 如何搭建Repo服务器端
- C语言中可变参数函数实现原理
- Java Read CSV File In Java With OpenCSV library 以及中文件乱码解决, Mapping CSV with Java beans
- oracle高级复制需要注意的几点问题
- Handler+Thread和HandlerThread的用法比较
- GTK+初步
- CMAKE的一些编译选项
- BP神经网络归一化问题
- Mac & Linux 命令行(持续更新)
- 2013随想
- TRS WCM Dreamweaver 编辑器选件启动出现onLoad的解决方案