sample.csv文件:
COUNTRY,CAPITAL,POPULATION India,New Delhi, 1.21B People's republic of China,Beijing, 1.34B United 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 # POPULATION India # New Delhi # 1.21B People's republic of China # Beijing # 1.34B United 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 # POPULATION India # New Delhi # 1.21B People's republic of China # Beijing # 1.34B United 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.FileNotFoundExceptio