On 14 June 2016 at 07:17, Gary Gregory <garydgreg...@gmail.com> wrote:
> On Mon, Jun 13, 2016 at 11:13 PM, 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.
>>
>
> Small is nice, I get that. But how would you do it differently so that I
> can easily use Paths, Files, URI, and URLs...

Conversion between these and Appendable is not the job of CSV.

> Gary
>
>
>>
>> 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"))) {
>> >
>> >
>> >
>>
>
>
>
> --
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory

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

Reply via email to