Nope, not both, fixed as you suggested which matches the ticket title
anyway.

Gary

On Sat, Jul 30, 2016 at 12:16 PM, Gary Gregory <garydgreg...@gmail.com>
wrote:

> Sure, or provide both?
>
> Gary
>
> On Jul 30, 2016 11:13 AM, "Benedikt Ritter" <brit...@apache.org> wrote:
>
>> I think it would be better to use a Charset object as parameter instead of
>> a String.
>>
>> WDYT?
>>
>> <ggreg...@apache.org> schrieb am Sa., 30. Juli 2016 um 19:57:
>>
>> > Repository: commons-csv
>> > Updated Branches:
>> >   refs/heads/master 0d7c984c6 -> ac46f73b2
>> >
>> >
>> > [CSV-189] CSVParser: Add factory method accepting InputStream.
>> >
>> > Project: http://git-wip-us.apache.org/repos/asf/commons-csv/repo
>> > Commit:
>> http://git-wip-us.apache.org/repos/asf/commons-csv/commit/ac46f73b
>> > Tree: http://git-wip-us.apache.org/repos/asf/commons-csv/tree/ac46f73b
>> > Diff: http://git-wip-us.apache.org/repos/asf/commons-csv/diff/ac46f73b
>> >
>> > Branch: refs/heads/master
>> > Commit: ac46f73b259412122680f217020ad473dc6e8781
>> > Parents: 0d7c984
>> > Author: Gary Gregory <ggreg...@apache.org>
>> > Authored: Sat Jul 30 10:57:13 2016 -0700
>> > Committer: Gary Gregory <ggreg...@apache.org>
>> > Committed: Sat Jul 30 10:57:13 2016 -0700
>> >
>> > ----------------------------------------------------------------------
>> >  src/changes/changes.xml                         |  1 +
>> >  .../java/org/apache/commons/csv/CSVParser.java  | 62
>> +++++++++++++++++++-
>> >  .../org/apache/commons/csv/CSVParserTest.java   | 34 ++++++++++-
>> >  3 files changed, 92 insertions(+), 5 deletions(-)
>> > ----------------------------------------------------------------------
>> >
>> >
>> >
>> >
>> http://git-wip-us.apache.org/repos/asf/commons-csv/blob/ac46f73b/src/changes/changes.xml
>> > ----------------------------------------------------------------------
>> > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
>> > index 4960ea6..a8e9a75 100644
>> > --- a/src/changes/changes.xml
>> > +++ b/src/changes/changes.xml
>> > @@ -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-189" type="add" dev="ggregory" due-to="Peter
>> > Holzwarth, Gary Gregory">CSVParser: Add factory method accepting
>> > InputStream.</action>
>> >        <action issue="CSV-???" type="add" dev="ggregory" due-to="Gary
>> > Gregory">Add convenience API CSVFormat.print(File, Charset)</action>
>> >        <action issue="CSV-???" type="add" dev="ggregory" due-to="Gary
>> > Gregory">Add convenience API CSVFormat.print(Path, Charset)</action>
>> >      </release>
>> >
>> >
>> >
>> http://git-wip-us.apache.org/repos/asf/commons-csv/blob/ac46f73b/src/main/java/org/apache/commons/csv/CSVParser.java
>> > ----------------------------------------------------------------------
>> > diff --git a/src/main/java/org/apache/commons/csv/CSVParser.java
>> > b/src/main/java/org/apache/commons/csv/CSVParser.java
>> > index dc1684c..c718521 100644
>> > --- a/src/main/java/org/apache/commons/csv/CSVParser.java
>> > +++ b/src/main/java/org/apache/commons/csv/CSVParser.java
>> > @@ -17,13 +17,17 @@
>> >
>> >  package org.apache.commons.csv;
>> >
>> > +import static org.apache.commons.csv.Token.Type.TOKEN;
>> > +
>> >  import java.io.Closeable;
>> >  import java.io.File;
>> >  import java.io.FileInputStream;
>> >  import java.io.IOException;
>> > +import java.io.InputStream;
>> >  import java.io.InputStreamReader;
>> >  import java.io.Reader;
>> >  import java.io.StringReader;
>> > +import java.io.UnsupportedEncodingException;
>> >  import java.net.URL;
>> >  import java.nio.charset.Charset;
>> >  import java.util.ArrayList;
>> > @@ -35,8 +39,6 @@ import java.util.Map;
>> >  import java.util.NoSuchElementException;
>> >  import java.util.TreeMap;
>> >
>> > -import static org.apache.commons.csv.Token.Type.*;
>> > -
>> >  /**
>> >   * Parses CSV files according to the specified format.
>> >   *
>> > @@ -133,6 +135,62 @@ import static org.apache.commons.csv.Token.Type.*;
>> >  public final class CSVParser implements Iterable<CSVRecord>, Closeable
>> {
>> >
>> >      /**
>> > +     * Customized CSV parser using the given {@link CSVFormat}
>> > +     *
>> > +     * <p>
>> > +     * If you do not read all records from the given {@code reader},
>> you
>> > should
>> > +     * call {@link #close()} on the parser, unless you close the {@code
>> > reader}.
>> > +     * </p>
>> > +     *
>> > +     * @param reader
>> > +     *            a Reader containing CSV-formatted input. Must not be
>> > null.
>> > +     * @param charsetName
>> > +     *            The name of a supported {@link
>> java.nio.charset.Charset
>> > +     *            </code>charset<code>}
>> > +     * @param format
>> > +     *            the CSVFormat used for CSV parsing. Must not be null.
>> > +     * @throws IllegalArgumentException
>> > +     *             If the parameters of the format are inconsistent or
>> if
>> > either
>> > +     *             reader or format are null.
>> > +     * @throws  UnsupportedEncodingException
>> > +     *             If the named charset is not supported
>> > +     * @throws IOException
>> > +     *             If there is a problem reading the header or skipping
>> > the
>> > +     *             first record
>> > +     * @since 1.5
>> > +     */
>> > +    @SuppressWarnings("resource")
>> > +    public static CSVParser parse(final InputStream inputStream, final
>> > String charset, final CSVFormat format) throws IOException {
>> > +        Assertions.notNull(inputStream, "inputStream");
>> > +        Assertions.notNull(format, "format");
>> > +        return parse(new InputStreamReader(inputStream, charset),
>> format);
>> > +    }
>> > +
>> > +    /**
>> > +     * Customized CSV parser using the given {@link CSVFormat}
>> > +     *
>> > +     * <p>
>> > +     * If you do not read all records from the given {@code reader},
>> you
>> > should
>> > +     * call {@link #close()} on the parser, unless you close the {@code
>> > reader}.
>> > +     * </p>
>> > +     *
>> > +     * @param reader
>> > +     *            a Reader containing CSV-formatted input. Must not be
>> > null.
>> > +     * @param format
>> > +     *            the CSVFormat used for CSV parsing. Must not be null.
>> > +     * @throws IllegalArgumentException
>> > +     *             If the parameters of the format are inconsistent or
>> if
>> > either
>> > +     *             reader or format are null.
>> > +     * @throws IOException
>> > +     *             If there is a problem reading the header or skipping
>> > the
>> > +     *             first record
>> > +     * @since 1.5
>> > +     */
>> > +    public static CSVParser parse(Reader reader, final CSVFormat
>> format)
>> > throws IOException {
>> > +        return new CSVParser(reader, format);
>> > +    }
>> > +
>> > +    /**
>> >       * Creates a parser for the given {@link File}.
>> >       *
>> >       * <p><strong>Note:</strong> This method internally creates a
>> > FileReader using
>> >
>> >
>> >
>> http://git-wip-us.apache.org/repos/asf/commons-csv/blob/ac46f73b/src/test/java/org/apache/commons/csv/CSVParserTest.java
>> > ----------------------------------------------------------------------
>> > diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java
>> > b/src/test/java/org/apache/commons/csv/CSVParserTest.java
>> > index 021279c..6fc8186 100644
>> > --- a/src/test/java/org/apache/commons/csv/CSVParserTest.java
>> > +++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java
>> > @@ -71,6 +71,11 @@ public class CSVParserTest {
>> >      private static final String[][] RESULT = { { "a", "b", "c", "d" },
>> {
>> > "a", "b", "1 2" }, { "foo baar", "b", "" },
>> >              { "foo\n,,\n\",,\n\"", "d", "e" } };
>> >
>> > +    private BOMInputStream createBOMInputStream(String resource) throws
>> > IOException {
>> > +        final URL url =
>> > ClassLoader.getSystemClassLoader().getResource(resource);
>> > +        return new BOMInputStream(url.openStream());
>> > +    }
>> > +
>> >      @Test
>> >      public void testBackslashEscaping() throws IOException {
>> >
>> > @@ -172,9 +177,8 @@ public class CSVParserTest {
>> >      }
>> >
>> >      @Test
>> > -    public void testBOMInputStream() throws IOException {
>> > -        final URL url =
>> > ClassLoader.getSystemClassLoader().getResource("CSVFileParser/bom.csv");
>> > -        try (final Reader reader = new InputStreamReader(new
>> > BOMInputStream(url.openStream()), "UTF-8");
>> > +    public void testBOMInputStream_ParserWithReader() throws
>> IOException {
>> > +        try (final Reader reader = new
>> > InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"),
>> "UTF-8");
>> >                  final CSVParser parser = new CSVParser(reader,
>> > CSVFormat.EXCEL.withHeader())) {
>> >              for (final CSVRecord record : parser) {
>> >                  final String string = record.get("Date");
>> > @@ -185,6 +189,30 @@ public class CSVParserTest {
>> >      }
>> >
>> >      @Test
>> > +    public void testBOMInputStream_parseWithReader() throws
>> IOException {
>> > +        try (final Reader reader = new
>> > InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"),
>> "UTF-8");
>> > +                final CSVParser parser = CSVParser.parse(reader,
>> > CSVFormat.EXCEL.withHeader())) {
>> > +            for (final CSVRecord record : parser) {
>> > +                final String string = record.get("Date");
>> > +                Assert.assertNotNull(string);
>> > +                // System.out.println("date: " + record.get("Date"));
>> > +            }
>> > +        }
>> > +    }
>> > +
>> > +    @Test
>> > +    public void testBOMInputStream_ParserWithInputStream() throws
>> > IOException {
>> > +        try (final BOMInputStream inputStream =
>> > createBOMInputStream("CSVFileParser/bom.csv");
>> > +                final CSVParser parser = CSVParser.parse(inputStream,
>> > "UTF-8", CSVFormat.EXCEL.withHeader())) {
>> > +            for (final CSVRecord record : parser) {
>> > +                final String string = record.get("Date");
>> > +                Assert.assertNotNull(string);
>> > +                // System.out.println("date: " + record.get("Date"));
>> > +            }
>> > +        }
>> > +    }
>> > +
>> > +    @Test
>> >      public void testCarriageReturnEndings() throws IOException {
>> >          final String code = "foo\rbaar,\rhello,world\r,kanu";
>> >          try (final CSVParser parser = CSVParser.parse(code,
>> > CSVFormat.DEFAULT)) {
>> >
>> >
>>
>


-- 
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

Reply via email to