public final class CsvParser extends Object
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);
}
Modifier and Type | Class and Description |
---|---|
protected static class |
CsvParser.AbstractDSL<D extends CsvParser.AbstractDSL<D>> |
static class |
CsvParser.DSL
DSL for csv parsing.
|
static class |
CsvParser.DSLYamlComment |
static class |
CsvParser.MapToDSL<T>
DSL for csv mapping to a dynamic jdbcMapper.
|
static class |
CsvParser.MapWithDSL<T>
DSL for csv mapping to a provided jdbcMapper.
|
static class |
CsvParser.StaticMapToDSL<T>
DSL for csv mapping to a static jdbcMapper.
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_BUFFER_SIZE_4K |
static Charset |
DEFAULT_CHARSET |
static int |
DEFAULT_MAX_BUFFER_SIZE_8M |
Constructor and Description |
---|
CsvParser() |
Modifier and Type | Method and Description |
---|---|
static CsvParser.DSL |
bufferSize(int size) |
static CsvParser.DSL |
dsl() |
static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> |
forEach(CharSequence content,
H consumer) |
static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> |
forEach(File file,
H consumer) |
static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> |
forEach(Reader reader,
H consumer) |
static Iterator<String[]> |
iterator(CharSequence content) |
static org.simpleflatmapper.util.CloseableIterator<String[]> |
iterator(File file) |
static Iterator<String[]> |
iterator(Reader reader) |
static CsvParser.DSL |
limit(int limit) |
static <T> CsvParser.MapToDSL<T> |
mapTo(Class<T> type) |
static <T1,T2> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple2<T1,T2>> |
mapTo(Class<T1> class1,
Class<T2> class2) |
static <T1,T2,T3> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple3<T1,T2,T3>> |
mapTo(Class<T1> class1,
Class<T2> class2,
Class<T3> class3) |
static <T1,T2,T3,T4> |
mapTo(Class<T1> class1,
Class<T2> class2,
Class<T3> class3,
Class<T4> class4) |
static <T1,T2,T3,T4,T5> |
mapTo(Class<T1> class1,
Class<T2> class2,
Class<T3> class3,
Class<T4> class4,
Class<T5> class5) |
static <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> |
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> |
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> |
mapTo(Type type) |
static <T> CsvParser.MapToDSL<T> |
mapTo(org.simpleflatmapper.util.TypeReference<T> type) |
static <T> CsvParser.MapWithDSL<T> |
mapWith(CsvMapper<T> mapper) |
static CsvParser.DSL |
maxBufferSize(int size) |
protected static <R,D extends CsvParser.AbstractDSL<?>> |
onReader(File file,
D dsl,
org.simpleflatmapper.csv.CsvParser.OnReaderFactory<R,? super D> factory) |
static <CC extends CellConsumer> |
parse(CharSequence content,
CC cellConsumer) |
static <CC extends CellConsumer> |
parse(File file,
CC cellConsumer) |
static <CC extends CellConsumer> |
parse(Reader reader,
CC cellConsumer) |
static <CC extends CellConsumer> |
parse(String content,
CC cellConsumer) |
static CsvParser.DSL |
quote(char c) |
static CsvReader |
reader(CharSequence content) |
static CloseableCsvReader |
reader(File file) |
static CsvReader |
reader(Reader reader) |
static CsvReader |
reader(String content) |
static CsvParser.DSL |
separator(char c) |
static CsvParser.DSL |
skip(int skip) |
static Stream<String[]> |
stream(File file)
Deprecated.
|
static <R> R |
stream(File file,
Function<Stream<String[]>,R> function) |
static Stream<String[]> |
stream(Reader r) |
static Stream<String[]> |
stream(String content) |
public static final int DEFAULT_MAX_BUFFER_SIZE_8M
public static final int DEFAULT_BUFFER_SIZE_4K
public static final Charset DEFAULT_CHARSET
public static CsvParser.DSL separator(char c)
c
- the separator charpublic static CsvParser.DSL bufferSize(int size)
public static CsvParser.DSL maxBufferSize(int size)
public static CsvParser.DSL quote(char c)
public static CsvParser.DSL skip(int skip)
public static CsvParser.DSL dsl()
public static CsvParser.DSL limit(int limit)
public static <T> CsvParser.MapToDSL<T> mapTo(Type type)
public static <T> CsvParser.MapToDSL<T> mapTo(Class<T> type)
public static <T> CsvParser.MapToDSL<T> mapTo(org.simpleflatmapper.util.TypeReference<T> type)
public static <T1,T2> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple2<T1,T2>> mapTo(Class<T1> class1, Class<T2> class2)
public static <T1,T2,T3> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple3<T1,T2,T3>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3)
public static <T1,T2,T3,T4> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple4<T1,T2,T3,T4>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4)
public static <T1,T2,T3,T4,T5> CsvParser.MapToDSL<org.simpleflatmapper.tuple.Tuple5<T1,T2,T3,T4,T5>> mapTo(Class<T1> class1, Class<T2> class2, Class<T3> class3, Class<T4> class4, Class<T5> class5)
public 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)
public 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)
public 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)
public static <T> CsvParser.MapWithDSL<T> mapWith(CsvMapper<T> mapper)
public static CsvReader reader(Reader reader) throws IOException
reader
- the readerIOException
- if an error occurs reading the datapublic static CsvReader reader(CharSequence content) throws IOException
IOException
public static CsvReader reader(String content) throws IOException
IOException
public static CloseableCsvReader reader(File file) throws IOException
IOException
public static Iterator<String[]> iterator(Reader reader) throws IOException
IOException
public static Iterator<String[]> iterator(CharSequence content) throws IOException
IOException
public static org.simpleflatmapper.util.CloseableIterator<String[]> iterator(File file) throws IOException
IOException
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(Reader reader, H consumer) throws IOException
IOException
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(CharSequence content, H consumer) throws IOException
IOException
public static <H extends org.simpleflatmapper.util.CheckedConsumer<String[]>> H forEach(File file, H consumer) throws IOException
IOException
public static <CC extends CellConsumer> CC parse(Reader reader, CC cellConsumer) throws IOException
IOException
public static <CC extends CellConsumer> CC parse(CharSequence content, CC cellConsumer) throws IOException
IOException
public static <CC extends CellConsumer> CC parse(String content, CC cellConsumer) throws IOException
IOException
public static <CC extends CellConsumer> CC parse(File file, CC cellConsumer) throws IOException
IOException
public static Stream<String[]> stream(Reader r) throws IOException
IOException
@Deprecated public static Stream<String[]> stream(File file) throws IOException
IOException
public static <R> R stream(File file, Function<Stream<String[]>,R> function) throws IOException
IOException
public static Stream<String[]> stream(String content) throws IOException
IOException
protected static <R,D extends CsvParser.AbstractDSL<?>> R onReader(File file, D dsl, org.simpleflatmapper.csv.CsvParser.OnReaderFactory<R,? super D> factory) throws IOException
IOException
Copyright © 2017. All rights reserved.