Aktualisierung: Der Code in dieser Antwort ist für Super CSV 1.52. Aktualisiert Code-Beispiele für Super CSV 2.4.0 können auf der Projekt-Website: http://super-csv.github.io/super-csv/index.html
Das SuperCSV Projekt unterstützt direkt die Analyse und strukturierte Manipulation von CSV-Zellen. Von http://super-csv.github.io/super-csv/examples_reading.html finden Sie z.B.
eine Klasse
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; }
}
gegeben und dass Sie eine CSV mit einem Header-Datei.Lassen Sie sich den folgenden Inhalt
username, password, date, zip, town
Klaus, qwexyKiks, 17/1/2007, 1111, New York
Oufu, bobilop, 10/10/2007, 4555, New York
annehmen können Sie dann eine Instanz der UserBean erstellen und mit Werten aus der zweiten Zeile der Datei mit dem folgenden Code bevölkern
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();
}
}
}
die folgende „Manipulation Spezifikation verwenden "
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
};
Ich habe die Sandboxed Commons CSV für ziemlich lange Zeit verwendet und noch nie ein Problem erlebt. Ich hoffe wirklich, dass sie es zu vollem Ansehen fördern und es aus dem Sandkasten holen. –
@ bmatthews68 der Sandbox-Link ist nicht mehr vorhanden - sieht so aus, als wäre er nach [Apache Commons Proper] verschoben (http://commons.apache.org/proper/commons-csv/) (Ich habe den Link in der Antwort auch bearbeitet) – drevicko