On 14 June 2016 at 07:13, Benedikt Ritter <brit...@apache.org> wrote:
> I don't like how we're evolving CSVFormat. It is becoming a dumping ground
> for anything that may be useful or convenient. The more methods we add, the
> harder it becomes for users to find the right method for their use case.

+1

And the more maintenance, documentation and testing that is needed.

> Benedikt
>
> <ggreg...@apache.org> schrieb am Di., 14. Juni 2016 um 07:53 Uhr:
>
>> Author: ggregory
>> Date: Tue Jun 14 05:53:32 2016
>> New Revision: 1748347
>>
>> URL: http://svn.apache.org/viewvc?rev=1748347&view=rev
>> Log:
>> Add convenience API CSVFormat.print(File, Charset) (JIRA is down ATM).
>>
>> Modified:
>>     commons/proper/csv/trunk/src/changes/changes.xml
>>
>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
>>
>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
>>
>> Modified: commons/proper/csv/trunk/src/changes/changes.xml
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/changes/changes.xml?rev=1748347&r1=1748346&r2=1748347&view=diff
>>
>> ==============================================================================
>> --- commons/proper/csv/trunk/src/changes/changes.xml (original)
>> +++ commons/proper/csv/trunk/src/changes/changes.xml Tue Jun 14 05:53:32
>> 2016
>> @@ -40,6 +40,7 @@
>>    <body>
>>      <release version="1.5" date="2016-MM-DD" description="Bug fix
>> release">
>>        <action issue="CSV-187" type="update" dev="ggregory" due-to="Gary
>> Gregory">Update platform requirement from Java 6 to 7.</action>
>> +      <action issue="CSV-???" type="add" dev="ggregory" due-to="Gary
>> Gregory">Add convenience API CSVFormat.print(File, Charset)</action>
>>      </release>
>>      <release version="1.4" date="2016-05-28" description="Feature and bug
>> fix release">
>>        <action issue="CSV-181" type="update" dev="ggregory" due-to="Gary
>> Gregory">Make CSVPrinter.print(Object) GC-free.</action>
>>
>> Modified:
>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java?rev=1748347&r1=1748346&r2=1748347&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
>> (original)
>> +++
>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
>> Tue Jun 14 05:53:32 2016
>> @@ -28,10 +28,14 @@ import static org.apache.commons.csv.Con
>>  import static org.apache.commons.csv.Constants.SP;
>>  import static org.apache.commons.csv.Constants.TAB;
>>
>> +import java.io.File;
>> +import java.io.FileOutputStream;
>>  import java.io.IOException;
>> +import java.io.OutputStreamWriter;
>>  import java.io.Reader;
>>  import java.io.Serializable;
>>  import java.io.StringWriter;
>> +import java.nio.charset.Charset;
>>  import java.sql.ResultSet;
>>  import java.sql.ResultSetMetaData;
>>  import java.sql.SQLException;
>> @@ -864,6 +868,27 @@ public final class CSVFormat implements
>>      }
>>
>>      /**
>> +     * Prints to the specified output.
>> +     *
>> +     * <p>
>> +     * See also {@link CSVPrinter}.
>> +     * </p>
>> +     *
>> +     * @param out
>> +     *            the output
>> +     * @param charset
>> +     *            A charset
>> +     * @return a printer to an output
>> +     * @throws IOException
>> +     *             thrown if the optional header cannot be printed.
>> +     * @since 1.5
>> +     */
>> +    public CSVPrinter print(final File out, Charset charset) throws
>> IOException {
>> +        // The FileWriter will be closed when close() is called.
>> +        return new CSVPrinter(new OutputStreamWriter(new
>> FileOutputStream(out), charset), this);
>> +    }
>> +
>> +    /**
>>       * Prints the {@code value} as the next value on the line to {@code
>> out}. The value will be escaped or encapsulated
>>       * as needed. Useful when one wants to avoid creating CSVPrinters.
>>       *
>>
>> Modified:
>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java?rev=1748347&r1=1748346&r2=1748347&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
>> (original)
>> +++
>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
>> Tue Jun 14 05:53:32 2016
>> @@ -22,9 +22,12 @@ import static org.junit.Assert.assertArr
>>  import static org.junit.Assert.assertEquals;
>>  import static org.junit.Assert.assertFalse;
>>
>> +import java.io.File;
>>  import java.io.IOException;
>>  import java.io.StringReader;
>>  import java.io.StringWriter;
>> +import java.nio.charset.Charset;
>> +import java.nio.charset.StandardCharsets;
>>  import java.sql.Connection;
>>  import java.sql.DriverManager;
>>  import java.sql.ResultSet;
>> @@ -38,6 +41,7 @@ import java.util.List;
>>  import java.util.Objects;
>>  import java.util.Random;
>>
>> +import org.apache.commons.io.FileUtils;
>>  import org.junit.Assert;
>>  import org.junit.Ignore;
>>  import org.junit.Test;
>> @@ -728,6 +732,24 @@ public class CSVPrinterTest {
>>      }
>>
>>      @Test
>> +    public void testPrintToFileWithDefaultCharset() throws IOException {
>> +        File file = File.createTempFile(getClass().getName(), ".csv");
>> +        try (final CSVPrinter printer = CSVFormat.DEFAULT.print(file,
>> Charset.defaultCharset())) {
>> +            printer.printRecord("a", "b\\c");
>> +        }
>> +        assertEquals("a,b\\c" + recordSeparator,
>> FileUtils.readFileToString(file, Charset.defaultCharset()));
>> +    }
>> +
>> +    @Test
>> +    public void testPrintToFileWithCharsetUtf16Be() throws IOException {
>> +        File file = File.createTempFile(getClass().getName(), ".csv");
>> +        try (final CSVPrinter printer = CSVFormat.DEFAULT.print(file,
>> StandardCharsets.UTF_16BE)) {
>> +            printer.printRecord("a", "b\\c");
>> +        }
>> +        assertEquals("a,b\\c" + recordSeparator,
>> FileUtils.readFileToString(file, StandardCharsets.UTF_16BE));
>> +    }
>> +
>> +    @Test
>>      public void testPrintCustomNullValues() throws IOException {
>>          final StringWriter sw = new StringWriter();
>>          try (final CSVPrinter printer = new CSVPrinter(sw,
>> CSVFormat.DEFAULT.withNullString("NULL"))) {
>>
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to