Cập nhật: Mã trong câu trả lời này là dành cho Super CSV 1.52. Có thể tìm thấy các ví dụ mã cập nhật cho Super CSV 2.4.0 tại trang web của dự án:
http://super-csv.github.io/super-csv/index.html
Dự án SuperCSV trực tiếp hỗ trợ phân tích cú pháp và thao tác cấu trúc của các ô CSV. Từ http://super-csv.github.io/super-csv/examples_reading.html bạn sẽ tìm thấy, vd
cho một lớp học
public class UserBean {
String username, password, street, town;
int zip;
public String getPassword() { return password; }
public String getStreet() { return street; }
public String getTown() { return town; }
public String getUsername() { return username; }
public int getZip() { return zip; }
public void setPassword(String password) { this.password = password; }
public void setStreet(String street) { this.street = street; }
public void setTown(String town) { this.town = town; }
public void setUsername(String username) { this.username = username; }
public void setZip(int zip) { this.zip = zip; }
}
và bạn có tệp CSV có tiêu đề. Hãy giả sử nội dung sau đây
username, password, date, zip, town
Klaus, qwexyKiks, 17/1/2007, 1111, New York
Oufu, bobilop, 10/10/2007, 4555, New York
Sau đó, bạn có thể tạo một phiên bản của UserBean và điền vào nó các giá trị từ dòng thứ hai của tệp với mã sau đây
class ReadingObjects {
public static void main(String[] args) throws Exception{
ICsvBeanReader inFile = new CsvBeanReader(new FileReader("foo.csv"), CsvPreference.EXCEL_PREFERENCE);
try {
final String[] header = inFile.getCSVHeader(true);
UserBean user;
while( (user = inFile.read(UserBean.class, header, processors)) != null) {
System.out.println(user.getZip());
}
} finally {
inFile.close();
}
}
}
sử dụng "đặc tả thao tác" sau đây
final CellProcessor[] processors = new CellProcessor[] {
new Unique(new StrMinMax(5, 20)),
new StrMinMax(8, 35),
new ParseDate("dd/MM/yyyy"),
new Optional(new ParseInt()),
null
};