* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.core.supercsv; /** * This interface is responsible to give Person related operations. * @author Hyderareefa */ public interface Customer { public String getCustomerNo(); public void setCustomerNo(String customerNo); public long getLoyaltyPoints(); public void setLoyaltyPoints(long loyaltyPoints); public String getMailingAddress(); public void setMailingAddress(String mailingAddress); } /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.core.supercsv; import java.util.Date; /** * This class is responsible to to collect data from other Beans. * @author Hyderareefa */ public class CustomerBean extends PersonBean implements Customer { private String customerNo; private long loyaltyPoints; private String mailingAddress; /** * Constructor */ public CustomerBean() { } /** * Constructor * @param customerNo * @param firstName * @param lastName * @param birthDate * @param mailingAddress * @param married * @param numberOfKids * @param favouriteQuote * @param email * @param loyaltyPoints */ public CustomerBean(final String customerNo, final String firstName, final S tring lastName, final Date birthDate, final String mailingAddress, final Boolean married, final Integer number OfKids, final String favouriteQuote, final String email, final long loyaltyPoints) { super(firstName, lastName, birthDate, married, numberOfKids, favouriteQu ote, email); this.customerNo = customerNo; this.loyaltyPoints = loyaltyPoints; this.mailingAddress = mailingAddress; }
@Override public String getCustomerNo() { return customerNo; } @Override public long getLoyaltyPoints() { return loyaltyPoints; } @Override public String getMailingAddress() { return mailingAddress; } @Override public void setCustomerNo(String customerNo) { this.customerNo = customerNo; } @Override public void setLoyaltyPoints(long loyaltyPoints) { this.loyaltyPoints = loyaltyPoints; }
@Override public void setMailingAddress(String mailingAddress) { this.mailingAddress = mailingAddress; } @Override public String toString() { return String .format( "CustomerBean [customerNo=%s, firstName=%s, last Name=%s, birthDate=%s, mailingAddress=%s, married=%s, numberOfKids=%s, favourite Quote=%s, email=%s, loyaltyPoints=%s]", customerNo, getFirstName(), getLastName(), getBi rthDate(), mailingAddress, getMarried(), getNumberOfKids(), getFavouriteQuote(), getEmail (), loyaltyPoints); } } /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.core.supercsv; import java.io.FileReader; import java.io.IOException; import org.supercsv.cellprocessor.Optional; import org.supercsv.cellprocessor.ParseBool; import org.supercsv.cellprocessor.ParseDate; import org.supercsv.cellprocessor.ParseInt; import org.supercsv.cellprocessor.constraint.LMinMax; import org.supercsv.cellprocessor.constraint.NotNull; import org.supercsv.cellprocessor.constraint.StrRegEx; import org.supercsv.cellprocessor.constraint.UniqueHashCode; import org.supercsv.cellprocessor.ift.CellProcessor; import org.supercsv.io.CsvBeanReader; import org.supercsv.io.ICsvBeanReader; import org.supercsv.prefs.CsvPreference; /** * * @author Hyderareefa */ public class Reading {
private final static String CSV_FILE_NAME = "E:/supercsv/writeWithCSVBeanWri ter.csv";
public static void main(String[] args) throws Exception { readWithCsvBeanReader(); }
/** * This method set up the Cell Processor. * @return processor */ private static CellProcessor[] getCellProcessors() {
/* final String emailRegEX = "[a-z0-9\\\\._]+@[a-z0-9\\\\.]+"; StrRegEx.registerMessage(emailRegEX, "Must be a valid email address."); */
final CellProcessor[] processor = new CellProcessor[] { new UniqueHashCode(), //customerNo new NotNull(), // firstName new NotNull(), // lastName new ParseDate("dd/MM/yyyy"), // birthDate new NotNull(), // mailingAddress new Optional(new ParseBool()), // married new Optional(new ParseInt()), // numberOfKids new NotNull(), // favouriteQuote new NotNull(), // email new LMinMax(0L, LMinMax.MAX_LONG) // loyaltyPoints }; return processor; }
/** * This method is responsible to read data from CSV file using CSVBeanReader . * @throws Exception */ public static void readWithCsvBeanReader() throws Exception { ICsvBeanReader beanReader = null; try { beanReader = new CsvBeanReader(new FileReader(CSV_FILE_NAME),CsvPref erence.STANDARD_PREFERENCE); final String[] header = beanReader.getHeader(true); final CellProcessor[] processor = getCellProcessors(); CustomerBean customer; while((customer = beanReader.read(CustomerBean.class, header, proces sor)) != null) { System.out.println(String.format("Line no = %s, RowNo = %s, Cust omer = %s", beanReader.getLineNumber(), beanReader.getRowNumber(), c ustomer)); } } catch(IOException ie) { System.out.println(ie.getMessage()); } finally { try { if(beanReader != null) { beanReader.close(); } } catch(IOException ie) { System.out.println(ie.getMessage()); } } }
} /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.core.supercsv; /** * * @author Hyderareefa */ public class SampleTest { public static void main(String[] args) { new Test().getValue(); } } class Test { boolean value; public Test() { value = true; } public void getValue() { System.out.println(value); initialize(); System.out.println(value); } public void initialize() { value = false; } } /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.core.supercsv; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import org.supercsv.cellprocessor.FmtBool; import org.supercsv.cellprocessor.FmtDate; import org.supercsv.cellprocessor.Optional; import org.supercsv.cellprocessor.constraint.LMinMax; import org.supercsv.cellprocessor.constraint.NotNull; import org.supercsv.cellprocessor.constraint.UniqueHashCode; import org.supercsv.cellprocessor.ift.CellProcessor; import org.supercsv.io.CsvBeanWriter; import org.supercsv.io.CsvListWriter; import org.supercsv.io.CsvMapWriter; import org.supercsv.io.ICsvBeanWriter; import org.supercsv.io.ICsvListWriter; import org.supercsv.io.ICsvMapWriter; import org.supercsv.prefs.CsvPreference; /** * * @author Hyderareefa */ public class Writing {
/** * This method is responsible to generate an CellProcessor * @return processors */ private static CellProcessor[] getCellProcessor() { final CellProcessor[] processors = new CellProcessor[] { new UniqueHashCode(), //customerNo (must be unique) new NotNull(), //firstName new NotNull(), //lastName new FmtDate("dd/MM/yyyy"), //birthDate new NotNull(), //mailingAddress new Optional(new FmtBool("Y", "N")), //married new Optional(), //numberofKids new Optional(), //favouriteQuote new NotNull(), //email new LMinMax(0L, LMinMax.MAX_LONG) //loyalityPoints }; return processors; }
/** * This method is responsible to write data into a CSV file * using CSVBeanWriter. * * @throws Exception */ public static void writeWithCSVBeanWriter() throws Exception { final CustomerBean john = new CustomerBean("1", "John", "Dunbar", new Gr egorianCalendar(1945, Calendar.JUNE, 13).getTime(), "1600 Amphitheater Parkway\nMountain View, CA 94043\nUnited Stat es", null, null, "\"May the Force be with you.\" - Star Wars", "jdbundar@gmail.co m", 0L); final CustomerBean bob = new CustomerBean("2", "Bob", "Down", new Gregor ianCalendar(1919, Calendar.FEBRUARY, 25).getTime(), "1601 Willow Rd.\nMenlo Park, CA 94056\nUnited States", Boolean. TRUE, 0, "\"Frankly, my dear I don't give a damn.\" - Gone With the Wind ", "bobdown@hotmail@gmail.com", 123456L);
/** * This method is responsible to write the data into CSV file * using CSVListWriter. * @throws Exception */ public static void writeWithCSVListWriter() throws Exception { final List<Object> john = Arrays.asList(new Object[] {"1", "John", "Dunb ar", new GregorianCalendar(1945, Calendar.JUNE, 13).getTime(), "1600 Amphitheater Parkway\nMountain View, CA 94043\nUnited Stat es", null, null, "\"May the Force be with you.\" - Star Wars", "jdbundar@gmail.co m", 0L}); final List<Object> bob = Arrays.asList(new Object[] {"2", "Bob", "Down", new GregorianCalendar(1919, Calendar.FEBRUARY, 25).getTime(), "1601 Willow Rd.\nMenlo Park, CA 94056\nUnited States", Boolean. TRUE, 0, "\"Frankly, my dear I don't give a damn.\" - Gone With the Wind ", "bobdown@hotmail@gmail.com", 123456L}); ICsvListWriter beanWriter = null; try { beanWriter = new CsvListWriter(new FileWriter("E:/supercsv/writeWith ListCSVWriter.csv"), CsvPreference.STANDARD_PREFERENCE); final CellProcessor[] processors = getCellProcessor(); final String[] header = new String[] {"customerNo", "firstName", "la stName", "birthDate", "mailingAddress", "married", "numberOfKids", "favouriteQuote", "email", "loyal tyPoints"}; beanWriter.writeHeader(header); beanWriter.write(john, processors); beanWriter.write(bob, processors); } catch(IOException io) { System.out.println(io.getMessage()); } finally { try { if(beanWriter != null) { beanWriter.close(); } } catch(IOException io) { System.out.println(io.getMessage()); } } }
/** * This method is responsible for writing data into CSV file using * CSVMapWriter * @throws Exception */ public static void writeWithCSVMapWriter() throws Exception { final String[] header = new String[] {"customerNo", "firstName", "lastNa me", "birthDate", "mailingAddress", "married", "numberOfKids", "favouriteQuote", "email", "loyal tyPoints"}; final Map<String, Object> john = new HashMap<>(); john.put(header[0], "1"); john.put(header[1], "John"); john.put(header[2], "Dunbar"); john.put(header[3], new GregorianCalendar(1945, Calendar.JUNE, 13).getTi me()); john.put(header[4], "1600 Amphitheatre Parkway\\nMountain View, CA 94043 \\nUnited States"); john.put(header[5], null); john.put(header[6], null); john.put(header[7], "\"May the Force be with you.\" - Star Wars"); john.put(header[8], "jdunbar@@gmail.com"); john.put(header[9], 0L);
final Map<String, Object> bob = new HashMap<>(); bob.put(header[0], "2"); bob.put(header[1], "Bob"); bob.put(header[2], "Down"); bob.put(header[3], new GregorianCalendar(1919, Calendar.FEBRUARY, 25).ge tTime()); bob.put(header[4], "1601 Willow Rd.\nMenlo Park, CA 94025\nUnited States "); bob.put(header[5], true); bob.put(header[6], 0); bob.put(header[7], "\"Frankly, my dear, I don't give a damn.\" - Gone Wi th The Wind"); bob.put(header[8], "bobdown@hotmail.com"); bob.put(header[9], 123456L);