Use csvWriter to append a folder name to csv file

73 views
Skip to first unread message

Daniel Coakley

unread,
Aug 28, 2012, 10:48:55 AM8/28/12
to csv...@googlegroups.com
I'm fairly new to Java and I''m trying to work out how to approach the following problem: I want to create a program which iterates through sub-folders in a directory and open up a named csv file (results.csv) in each sub-directory. I then want to append the folder name to that csv file at the beginning of each row. I think I'm on the right track, in that I've found snippets of code which do what I require - I just need to combine them to work how I want.

Folder/File Reader
public static void main(String... args) {
    File[] files = new File("C:/").listFiles();
    showFiles(files);
}
public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getName());
            showFiles(file.listFiles()); // Calls same method again.
        } else {
            System.out.println("File: " + file.getName());
        }
    }
}

 Use CsvWriter to append names:
package com.csvreader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import com.csvreader.CsvWriter;
public class CsvWriterAppendExample {

public static void main(String[] args) {

String outputFile = "users.csv";

// before we open the file check to see if it already exists
boolean alreadyExists = new File(outputFile).exists();

try {
// use FileWriter constructor that specifies open for appending
CsvWriter csvOutput = new CsvWriter(new FileWriter(outputFile, true), ',');

// if the file didn't already exist then we need to write out the header line
if (!alreadyExists)
{
csvOutput.write("id");
csvOutput.write("name");
csvOutput.endRecord();
}
// else assume that the file already has the correct header line

// write out a few records
csvOutput.write("1");
csvOutput.write("Bruce");
csvOutput.endRecord();

csvOutput.write("2");
csvOutput.write("John");
csvOutput.endRecord();

csvOutput.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}


If anyone could point me in the right direction, I would really appreciate it. Thanks
Reply all
Reply to author
Forward
0 new messages