Chances are you might have needed to convert a list of strings or numbers to a CSV file while you were programming something. An example is that in any java program you might have obtained a list of states of United States stored in your...
Chances are you might have needed to convert a list of strings or numbers to a CSV file while you were programming something. An example is that in any java program you might have obtained a list of states of United States stored in your ArrayList object and then you wanted to have them in a CSV format so that you probably could load it to a database or use it for some other purposes.
I wrote this tool to serve the same purpose.
Here are the basic features this simple java example can do. Given a list of String objects stored in an ArrayList, this program can:
Convert Strings or numbers stored in an ArrayList object to comma separated strings
Print the comma separated values (CSV) to either console or file
Optionally you can sort the the list before you do the conversion.
package com.kushal.tools;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/**
* @author Kushal Paudyal
* Last Modified on 2011-09-06 This utility converts a
* list to comma separated values. Intended to be used with Strings and
* can be modified with numbers.
*
* Have options to write the converted values to either console or file.
*/
public class ListToCSV {
private static boolean writeCSVToConsole = true;
private static boolean writeCSVToFile = true;
private static String destinationCSVFile = "C:\\temp\\convertedCSV.csv";
private static boolean sortTheList = true;
public static void main(String[] args) {
ListToCSV util = new ListToCSV();
List sampleList = util.createSampleList();
util.convertAndPrint(sampleList, writeCSVToConsole, writeCSVToFile, sortTheList);
}
/**
* @param sampleList - input list of string
* @param writeToConsole - if this flag is true, writes to console
* @param writeToFile - if this flag is true writes to file.
* @param sortTheList - if the list is to be sorted before conversion
*/
private void convertAndPrint(List sampleList,
boolean writeToConsole, boolean writeToFile, boolean sortTheList) {
String commaSeparatedValues = "";
/** If the list is not null and the list size is not zero, do the processing**/
if (sampleList != null) {
/** Sort the list if sortTheList was passed as true**/
if(sortTheList) {
Collections.sort(sampleList);
}
/**Iterate through the list and append comma after each values**/
Iterator iter = sampleList.iterator();
while (iter.hasNext()) {
commaSeparatedValues += iter.next() + ",";
}
/**Remove the last comma**/
if (commaSeparatedValues.endsWith(",")) {
commaSeparatedValues = commaSeparatedValues.substring(0,
commaSeparatedValues.lastIndexOf(","));
}
}
/** If writeToConsole flag was passed as true, output to console**/
if(writeToConsole) {
System.out.println(commaSeparatedValues);
}
/** If writeToFile flag was passed as true, output to File**/
if(writeToFile) {
try {
FileWriter fstream = new FileWriter(destinationCSVFile, false);
BufferedWriter out = new BufferedWriter(fstream);
out.write(commaSeparatedValues);
out.close();
System.out.println("*** Also wrote this information to file: " + destinationCSVFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* Creates a sample list to be used by the convertAndPrint method
* and returns it to the calling method.
*/
private List createSampleList() {
List sampleList = new ArrayList();
sampleList.add("Nebraska");
sampleList.add("Iowa");
sampleList.add("Illinois");
sampleList.add("Idaho");
return sampleList;
}
}
Originally posted 2011-09-16 18:54:06.