package com.ldbc.driver.csv.simple; import com.google.common.base.Charsets; import java.io.BufferedWriter; import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Iterator; public class SimpleCsvFileWriter implements Closeable { public static final String DEFAULT_COLUMN_SEPARATOR = "|"; private final BufferedWriter bufferedWriter; private final String columnSeparator; public SimpleCsvFileWriter( File file, String columnSeparator ) throws IOException { this.bufferedWriter = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), Charsets.UTF_8 ) ); this.columnSeparator = columnSeparator; } public void writeRows( Iterator<String[]> csvRows ) throws IOException { while ( csvRows.hasNext() ) { writeRow( csvRows.next() ); } } public void writeRow( String... columns ) throws IOException { for ( int i = 0; i < columns.length - 1; i++ ) { bufferedWriter.write( columns[i] ); bufferedWriter.write( columnSeparator ); } bufferedWriter.write( columns[columns.length - 1] ); bufferedWriter.newLine(); } @Override public void close() throws IOException { bufferedWriter.flush(); bufferedWriter.close(); } }