It is possible to customize the quote char, the separator, skip lines,and specified the size of the buffer
CsvParser
.quote('\'')
.separator(';')
.skip(2)
.bufferSize(256)
.stream(new StringReader("1;1\n2;2\n3;3\n4;4\n5;5"))
.map(Arrays::toString)
.forEach(System.out::println);
// output
// [3, 3]
// [4, 4]
// [5, 5]
the limit settings does not affect streams or iterator, only parse on DSL and forEach on the mapTo/mapWith DSL.
The DSL provides way to mapTo an object
CsvParser.mapTo(MyClass.class).stream(reader).forEach(System.out::println);
using static mapping when no headers
CsvParser.mapTo(MyClass.class).addHeaders("id", "field").stream(reader).forEach(System.out::println);
// using the addMapping
CsvParser.mapTo(MyClass.class).addMapping("id").addMapping("field").stream(reader).forEach(System.out::println);
using static mapping and ignoring source header
CsvParser.mapTo(MyClass.class).overrideHeaders("id", "field").stream(reader).forEach(System.out::println);
// using the addMapping
CsvParser.skip(1).mapTo(MyClass.class).addMapping("id").addMapping("field").stream(reader).forEach(System.out::println);
or mapping with a predefined jdbcMapper.
CsvMapper<MyClass> jdbcMapper = CsvMapperFactory.newInstance().newMapper(MyClass.class);
CsvParser.mapWith(jdbcMapper).stream(reader).forEach(System.out::println);
Each call to the DSL return an immutable representation of the current setup. So that it is possible to cache step of the DSL without side effect.
CsvParser.DSL semiColumnParser = CsvParser.separator(';');
try (Reader r = new FileReader(file)) {
// the limit does not modify to the semiColumnParser object
semiColumnParser.limit(3).stream(r);
}
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classCsvParser.AbstractDSL<D extends CsvParser.AbstractDSL<D>>static final classDSL for csv parsing.static final classstatic final classDSL for csv mapping to a dynamic jdbcMapper.static classDSL for csv mapping to a provided jdbcMapper.static final classDSL for csv mapping to a static jdbcMapper. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic CsvParser.DSLbufferSize(int size) static CsvParser.DSLdsl()static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>>
Hstatic <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>>
Hstatic <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>>
HforEach(CharSequence content, H consumer) static org.simpleflatmapper.util.CloseableIterator<String[]>iterator(CharSequence content) static CsvParser.DSLlimit(int limit) static <T> CsvParser.MapToDSL<T>static <T1,T2> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple2<T1, T2>> static <T1,T2, T3> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple3<T1, T2, T3>> static <T1,T2, T3, T4>
CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple4<T1,T2, T3, T4>> static <T1,T2, T3, T4, T5>
CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple5<T1,T2, T3, T4, T5>> static <T1,T2, T3, T4, T5, T6>
CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple6<T1,T2, T3, T4, T5, T6>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4, Class<T5> class5, Class<T6> class6) static <T1,T2, T3, T4, T5, T6, T7>
CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple7<T1,T2, T3, T4, T5, T6, T7>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4, Class<T5> class5, Class<T6> class6, Class<T7> class7) static <T1,T2, T3, T4, T5, T6, T7, T8>
CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple8<T1,T2, T3, T4, T5, T6, T7, T8>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4, Class<T5> class5, Class<T6> class6, Class<T7> class7, Class<T8> class8) static <T> CsvParser.MapToDSL<T>static <T> CsvParser.MapToDSL<T>mapTo(org.simpleflatmapper.util.TypeReference<T> type) static <T> CsvParser.MapWithDSL<T>static CsvParser.DSLmaxBufferSize(int size) static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer>
CCstatic <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer>
CCstatic <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer>
CCparse(CharSequence content, CC cellConsumer) static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer>
CCstatic CsvParser.DSLquote(char c) static org.simpleflatmapper.lightningcsv.CloseableCsvReaderstatic org.simpleflatmapper.lightningcsv.CsvReaderstatic org.simpleflatmapper.lightningcsv.CsvReaderreader(CharSequence content) static org.simpleflatmapper.lightningcsv.CsvReaderstatic CsvParser.DSLseparator(char c) static CsvParser.DSLskip(int skip) Deprecated.static <R> R
-
Field Details
-
DEFAULT_CHARSET
-
-
Constructor Details
-
CsvParser
public CsvParser()
-
-
Method Details
-
separator
- Parameters:
c- the separator char- Returns:
- the DSL object
-
bufferSize
-
maxBufferSize
-
quote
-
skip
-
dsl
-
limit
-
mapTo
-
mapTo
-
mapTo
-
mapTo
public static <T1,T2> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple2<T1,T2>> mapTo(Class<T1> class1, Class<T2> class2) -
mapTo
public static <T1,T2, CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple3<T1,T3> T2, mapToT3>> (Class<T1> class1, Class<T2> class2, Class<T3> class3) -
mapTo
public static <T1,T2, CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple4<T1,T3, T4> T2, mapToT3, T4>> (Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4) -
mapTo
-
mapTo
-
mapTo
-
mapTo
-
mapWith
-
reader
- Parameters:
reader- the reader- Returns:
- a csv reader based on the default setup.
- Throws:
IOException- if an error occurs reading the data
-
reader
public static org.simpleflatmapper.lightningcsv.CsvReader reader(CharSequence content) throws IOException - Throws:
IOException
-
reader
- Throws:
IOException
-
reader
public static org.simpleflatmapper.lightningcsv.CloseableCsvReader reader(File file) throws IOException - Throws:
IOException
-
iterator
- Throws:
IOException
-
iterator
- Throws:
IOException
-
iterator
public static org.simpleflatmapper.util.CloseableIterator<String[]> iterator(File file) throws IOException - Throws:
IOException
-
forEach
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(Reader reader, H consumer) throws IOException - Throws:
IOException
-
forEach
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(CharSequence content, H consumer) throws IOException - Throws:
IOException
-
forEach
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(File file, H consumer) throws IOException - Throws:
IOException
-
parse
public static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer> CC parse(Reader reader, CC cellConsumer) throws IOException - Throws:
IOException
-
parse
public static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer> CC parse(CharSequence content, CC cellConsumer) throws IOException - Throws:
IOException
-
parse
public static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer> CC parse(String content, CC cellConsumer) throws IOException - Throws:
IOException
-
parse
public static <CC extends org.simpleflatmapper.lightningcsv.parser.CellConsumer> CC parse(File file, CC cellConsumer) throws IOException - Throws:
IOException
-
stream
- Throws:
IOException
-
stream
Deprecated.- Throws:
IOException
-
stream
- Throws:
IOException
-
stream
- Throws:
IOException
-