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<String> 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<String> 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<String> 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<String> createSampleList() {
List<String> sampleList = new ArrayList<String>();
sampleList.add("Nebraska");
sampleList.add("Iowa");
sampleList.add("Illinois");
sampleList.add("Idaho");
return sampleList;
}
}
Originally posted 2011-09-16 18:54:06.