Skip to content

Commit

Permalink
Create sniper for Read and CSV file using Apache Commons CSV
Browse files Browse the repository at this point in the history
<dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.5</version>
</dependency>
  • Loading branch information
MdGolam-Kibria committed Jan 27, 2022
1 parent 9f937b9 commit 1dee2b3
Show file tree
Hide file tree
Showing 95 changed files with 337 additions and 151 deletions.
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>

<!-- Below 1 maven for Read Write data for CSV file-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>


<!-- For database related test-->
Expand Down
3 changes: 3 additions & 0 deletions sample.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Name,Email,Phone,Address
kibria,[email protected],01431921892,dhaka bangladesh
anika,[email protected],01631921892,Naogaon
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package com.CrackCode.ApachePoi.CSVfileReadWrite;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.IOException;
import java.io.Reader;
import java.nio.file.Files;
import java.nio.file.Paths;

/*
@TODO Need this dependency
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
*/
public class CSVReader {

private static final String SAMPLE_CSV_FILE_PATH = "./sample.csv";//--expected Readable CSV File Name

public static void main(String[] args) throws IOException {
/**
* @TODO Read and print CSV data with Headers to console
*/
//here get Data From Csv File using valid file name
CSVParser csvDataWithHeaders = new CSVReader().getCsvDataListWithHeaders(SAMPLE_CSV_FILE_PATH);
//Now print
printCSVdata(csvDataWithHeaders);







System.out.println("\n\n\n\n\n\n\n\n\n-----------------------------Now Read Data Without Headers----------------------------------------\n\n\n\n\n\n\n\n\n\n\n");





/**
* @TODO Read and print CSV data without Headers to console
*/
//here get Data From Csv File using valid file name
CSVParser csvDataWithoutHeaders = new CSVReader().getCsvDataListWithoutHeaders(SAMPLE_CSV_FILE_PATH);
//Now print
printCSVdata(csvDataWithoutHeaders);

}

public CSVParser getCsvDataListWithHeaders(String fileName) throws IOException {
Reader reader = Files.newBufferedReader(Paths.get(SAMPLE_CSV_FILE_PATH));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT
.withHeader("Name", "Email", "Phone", "Address")//those are headers name.
.withIgnoreHeaderCase()
.withTrim());
return csvParser;
}

public CSVParser getCsvDataListWithoutHeaders(String fileName) throws IOException {
Reader reader = Files.newBufferedReader(Paths.get(SAMPLE_CSV_FILE_PATH));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT
.withFirstRecordAsHeader()
.withIgnoreHeaderCase()
.withTrim());
return csvParser;
}



//only for print data
public static void printCSVdata(CSVParser csvRecords){
for (CSVRecord csvRecord :csvRecords ) {
// Accessing values by the names assigned to each column
String name = csvRecord.get("Name");
String email = csvRecord.get("Email");
String phone = csvRecord.get("Phone");
String address = csvRecord.get("Address");

System.out.println("Record No - " + csvRecord.getRecordNumber());
System.out.println("---------------");
System.out.println("Name : " + name);
System.out.println("Email : " + email);
System.out.println("Phone : " + phone);
System.out.println("Address : " + address);
System.out.println("---------------\n\n");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.CrackCode.ApachePoi.CSVfileReadWrite;

import com.CrackCode.designPattern.Prototype.Student;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

/*
@TODO Need this dependency
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
*/
public class CSVWriter {
private static final String SAMPLE_CSV_FILE = "./sample.csv";//--expected CSV File Name

public static void main(String[] args) throws IOException {
String[] headers = {"Name", "Email", "Phone","Address"};//for headers
//now prepare data
List<Student> dataList = new ArrayList<>();
dataList.add(new Student("kibria","[email protected]","01431921892","dhaka bangladesh"));
dataList.add(new Student("anika","[email protected]","01631921892","Naogaon"));
//Now send data to write CSV File
new CSVWriter().writeDataTCsv(SAMPLE_CSV_FILE,headers, dataList);
}


/**
* @TODO Method For Write Data to CSV file
* @param fileName
* @param headers
* @param rowsDataList
* @throws IOException
*/
public void writeDataTCsv(String fileName, String[] headers,List<Student> rowsDataList) throws IOException {
try {
BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName));

CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
.withHeader(headers/*Add headers here*/));

//now set data to print
rowsDataList.forEach(student -> {
try {
csvPrinter.printRecord(student.getName(), student.getEmail(), student.getPhone(), student.getAddress());
} catch (IOException e) {
e.printStackTrace();
}
});
csvPrinter.flush(); //Finally, flash the operation

}catch (Exception e){
throw e;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.ApachePoi;
package com.CrackCode.ApachePoi.XLfileReadWrite;

public interface ContentReadListener {
void afterRowRead(int rowIndex, String[] values);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.ApachePoi;
package com.CrackCode.ApachePoi.XLfileReadWrite;

import com.fasterxml.jackson.databind.exc.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.ApachePoi;
package com.CrackCode.ApachePoi.XLfileReadWrite;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.ApachePoi;
package com.CrackCode.ApachePoi.XLfileReadWrite;

public interface SpreadSheetReader {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.ApachePoi;
package com.CrackCode.ApachePoi.XLfileReadWrite;

import javax.servlet.ServletResponse;
import java.io.File;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.CrackCode.interviewQuestion.ApachePoi.XLReadWriteTest;
package com.CrackCode.ApachePoi.XLfileReadWrite.XLReadWriteTest;

import com.CrackCode.interviewQuestion.ApachePoi.ContentReadListener;
import com.CrackCode.interviewQuestion.ApachePoi.ExcelFileReader;
import com.CrackCode.interviewQuestion.designPattern.Prototype.Student;
import com.CrackCode.ApachePoi.XLfileReadWrite.ContentReadListener;
import com.CrackCode.ApachePoi.XLfileReadWrite.ExcelFileReader;
import com.CrackCode.designPattern.Prototype.Student;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.CrackCode.interviewQuestion.ApachePoi.XLReadWriteTest;
package com.CrackCode.ApachePoi.XLfileReadWrite.XLReadWriteTest;

import com.CrackCode.interviewQuestion.ApachePoi.ContentReadListener;
import com.CrackCode.interviewQuestion.ApachePoi.ExcelFileWriter;
import com.CrackCode.interviewQuestion.designPattern.Prototype.Student;
import com.CrackCode.ApachePoi.XLfileReadWrite.ContentReadListener;
import com.CrackCode.ApachePoi.XLfileReadWrite.ExcelFileWriter;
import com.CrackCode.designPattern.Prototype.Student;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

Expand Down Expand Up @@ -53,7 +53,7 @@ public void writeApprovedTransactionToResponse(HttpServletResponse response, Str
try {

ExcelFileWriter xlWriter = new ExcelFileWriter();
xlWriter.setContentReadListener(rows.get(0).length, new ContentReadListener() {
xlWriter.setContentReadListener(rows.get(0).length/*length of header*/, new ContentReadListener() {
@Override
public void afterRowRead(int rowIndex, String[] values) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion;
package com.CrackCode;

import org.modelmapper.ModelMapper;
import org.springframework.context.annotation.Bean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion;
package com.CrackCode;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example1;
package com.CrackCode.Polymorphism.example1;

public class Programmer {
public void doWork() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example1;
package com.CrackCode.Polymorphism.example1;

public class RuntimeResult {
public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example1;
package com.CrackCode.Polymorphism.example1;

public class Tester extends Programmer{
public void doWork() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example2;
package com.CrackCode.Polymorphism.example2;

public interface Communication {
void yourGenderName();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example2;
package com.CrackCode.Polymorphism.example2;

public class Man implements Communication{
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example2;
package com.CrackCode.Polymorphism.example2;

public class RuntimeOutput {
public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Polymorphism.example2;
package com.CrackCode.Polymorphism.example2;

public class Woman implements Communication{
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Reflection;
package com.CrackCode.Reflection;



Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.Reflection;
package com.CrackCode.Reflection;

import java.lang.reflect.Field;
import java.util.Arrays;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.SerializationDeserialization.FullExample;
package com.CrackCode.SerializationDeserialization.FullExample;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.SerializationDeserialization.FullExample;
package com.CrackCode.SerializationDeserialization.FullExample;

import java.io.*;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.SerializationDeserialization;
package com.CrackCode.SerializationDeserialization;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion;
package com.CrackCode;

import java.util.ArrayList;
import java.util.Arrays;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.collection;
package com.CrackCode.collection;

import java.util.Arrays;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.database.INNER_JOIN.model;
package com.CrackCode.database.INNER_JOIN.model;

import javax.persistence.*;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.CrackCode.interviewQuestion.database.INNER_JOIN.model;
package com.CrackCode.database.INNER_JOIN.model;

import javax.persistence.*;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.CrackCode.interviewQuestion.database.INNER_JOIN.repository;
package com.CrackCode.database.INNER_JOIN.repository;

import com.CrackCode.interviewQuestion.database.INNER_JOIN.model.Child;
import com.CrackCode.database.INNER_JOIN.model.Child;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.CrackCode.interviewQuestion.database.INNER_JOIN.repository;
package com.CrackCode.database.INNER_JOIN.repository;

import com.CrackCode.interviewQuestion.database.SQL;
import com.CrackCode.interviewQuestion.database.INNER_JOIN.model.Parent;
import com.CrackCode.database.SQL;
import com.CrackCode.database.INNER_JOIN.model.Parent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.CrackCode.interviewQuestion.database;
package com.CrackCode.database;

import com.CrackCode.interviewQuestion.database.INNER_JOIN.model.Child;
import com.CrackCode.interviewQuestion.database.INNER_JOIN.model.Parent;
import com.CrackCode.interviewQuestion.database.INNER_JOIN.repository.ChildRepository;
import com.CrackCode.interviewQuestion.database.INNER_JOIN.repository.ParentRepository;
import com.CrackCode.database.INNER_JOIN.model.Child;
import com.CrackCode.database.INNER_JOIN.model.Parent;
import com.CrackCode.database.INNER_JOIN.repository.ChildRepository;
import com.CrackCode.database.INNER_JOIN.repository.ParentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

Expand Down
Loading

0 comments on commit 1dee2b3

Please sign in to comment.