Super CSV 2.1
Popis
Super CSV: Najlepší balík CSV pre vývojárov Java
Ak ste vývojár v jazyku Java, viete, aké dôležité je mať k dispozícii správne nástroje. A pokiaľ ide o prácu so súbormi CSV, Super CSV je balík, ktorý potrebujete. Táto bezplatná knižnica s otvoreným zdrojovým kódom uľahčuje čítanie a zápis súborov CSV v jazyku Java s podporou hlbokého mapovania a mapovania založeného na indexoch pomocou nového rozšírenia Dozer.
Čo však odlišuje Super CSV od iných knižníc? Jednak je navrhnutý tak, aby bol priateľský k programátorom. To znamená, že nemusíte byť odborníkom na analýzu alebo formátovanie údajov – Super CSV sa o všetko postará za vás. Je tiež vysoko konfigurovateľný, takže si môžete prispôsobiť jeho správanie tak, aby vyhovovalo vašim potrebám.
Pozrime sa bližšie na to, čo Super CSV dokáže.
Čítanie a zápis súborov CSV
Super CSV je vo svojej podstate všetko o čítaní a zapisovaní údajov vo formáte CSV (comma-separated value). Toto je bežný formát súboru používaný na výmenu údajov medzi rôznymi aplikáciami alebo systémami.
So Super CSV je čítanie súboru také jednoduché ako vytvorenie objektu čítačky a zavolanie jeho metódy read():
```java
ICsvBeanReader beanReader=new CsvBeanReader(new FileReader("data.csv"), CsvPreference.STANDARD_PREFERENCE);
skúste {
final String[] hlavička=beanReader.getHeader(true);
final CellProcessor[] procesory=getProcessors();
MyBean myBean;
while ((myBean=beanReader.read(MyBean.class, hlavička, procesory))!=null) {
System.out.println(myBean);
}
} nakoniec {
beanReader.close();
}
```
Tento kód načíta každý riadok súboru "data.csv" do inštancie MyBean (obyčajný starý objekt Java), pričom použije hlavičky z prvého riadku ako názvy vlastností. Tiež aplikuje niektoré bunkové procesory (viac o nich neskôr) na každé pole pred ich nastavením na objekt.
Zápis údajov funguje podobne:
```java
ICsvMapWriter mapWriter=new CsvMapWriter(new FileWriter("output.csv"), CsvPreference.STANDARD_PREFERENCE);
skúste {
final String[] hlavička=new String[]{"meno", "vek", "e-mail"};
mapWriter.writeHeader(hlavička);
Mapa<String,Objekt> riadok1=new HashMap<>();
row1.put("meno", "John");
row1.put("vek", 25);
row1.put("e-mail", "[email protected]");
//. .. pridať ďalšie riadky. ..
Zoznam<Mapa<String,Objekt>> riadky=Arrays.asList(riadok1,riadok2,riadok3);
mapWriter.write(riadky, hlavička, getProcessors());
} nakoniec {
mapWriter.close();
}
```
Tu vytvoríme objekt Writer, ktorý zapíše výstup do "output.csv". Potom vypíšeme niekoľko hlavičiek, za ktorými nasleduje niekoľko riadkov údajov (reprezentovaných ako mapy). Pred vypísaním každého poľa opäť použijeme niekoľko bunkových procesorov.
Údaje mapovania
Jednou z najvýkonnejších funkcií Super CVS je jeho schopnosť vykonávať hlboké mapovanie medzi objektmi a stĺpcami v súbore. To znamená, že ak váš vstupný alebo výstupný formát presne nezodpovedá vašej internej reprezentácii údajov (napr. ak sa názvy stĺpcov líšia), môžete medzi nimi stále jednoducho konvertovať.
Napríklad:
```java
public class Zákazník {
@CsvBindByName(column="Krstné meno")
private String krstné meno;
@CsvBindByName(column="Priezvisko")
private String lastName;
@CsvBindByName(column="E-mailová adresa")
súkromný reťazec e-mailu;
}
//. ..
Mapovač ICsvDozerBeanMapper =
nový CsvDozerBeanMapperBuilder()
. withMappingFiles(mappingFile)
. build();
Zoznam <Zákazníkov> zákazníkov =
mapper.mapToBeans(
csvInputStream,
Zákazník.trieda);
//. ..
```
Tu definujeme našu vlastnú triedu `Customer`, ktorá má polia anotované anotáciami `@CsvBindByName`, ktoré označujú, z akého stĺpca majú byť pri čítaní/zápise mapované.
Potom použijeme `CsvDozerMapper`, ktorý používa Dozer pod kapotou – ďalší populárny open source projekt – na vykonanie tejto konverzie automaticky na základe týchto anotácií.
Bunkové procesory
Ďalšou kľúčovou vlastnosťou Super CVS sú bunkové procesory – malé triedy, ktoré transformujú jednotlivé bunky počas operácií čítania alebo zápisu.
Napríklad:
```java
private static CellProcessor[] getProcessors() {
konečný CellProcessor[] procesory =
{
// overenie názvu
nové NotNull(),
// overenie veku a konverzia
new ParseInt(),
// overenie a konverzia e-mailu
new EmailValidator(),
};
vratné procesory;
}
```
V tomto príklade definujeme tri inštancie bunkového procesora: NotNull skontroluje, či je prítomná nejaká hodnota; ParseInt konvertuje hodnoty reťazca na celé čísla; EmailValidator skontroluje, či e-mailová adresa vyzerá ako platná.
Tieto inštancie procesora sa potom odovzdajú spolu s ďalšími parametrami pri vytváraní čítačiek/zapisovačiek/mapovačov.
Záver
Super CVS poskytuje vývojárom ľahko použiteľnú, ale výkonnú sadu nástrojov na prácu so súbormi s hodnotami oddelenými čiarkami v ich projektoch Java.
Či už máte čo do činenia s veľkými množinami údajov alebo len potrebujete niečo rýchle a špinavé pre ad-hoc úlohy,
Super CVS má všetko pokryté: od základných I/O operácií cez pokročilé mapovania až po komplexné validácie/konverzie cez bunkové spracovanie.
Tak prečo to neskúsiť ešte dnes?
Úplná špecifikácia
Vydavateľ | Kasper B. Graversen |
Stránka vydavateľa | |
Dátum vydania | 2013-04-24 |
Dátum pridania | 2013-04-25 |
Kategória | Nástroje pre vývojárov |
Podkategória | Softvér Java |
Verzia | 2.1 |
Požiadavky OS | Windows 2003, Windows 2000, Windows Vista, Windows, Windows 7, Windows XP |
Požiadavky | Java |
cena | Free |
Stiahnutie za týždeň | 0 |
Celkový počet stiahnutí | 96 |
Comments: