@@ -153,6 +153,7 @@ public static class Builder extends AbstractStreamBuilder<CSVParser, Builder> {
153153 private CSVFormat format ;
154154 private long characterOffset ;
155155 private long recordNumber = 1 ;
156+ private boolean enableByteTracking = false ;
156157
157158 /**
158159 * Constructs a new instance.
@@ -164,7 +165,7 @@ protected Builder() {
164165 @ SuppressWarnings ("resource" )
165166 @ Override
166167 public CSVParser get () throws IOException {
167- return new CSVParser (getReader (), format != null ? format : CSVFormat .DEFAULT , characterOffset , recordNumber , getCharset ());
168+ return new CSVParser (getReader (), format != null ? format : CSVFormat .DEFAULT , characterOffset , recordNumber , getCharset (), enableByteTracking );
168169 }
169170
170171 /**
@@ -200,6 +201,11 @@ public Builder setRecordNumber(final long recordNumber) {
200201 return asThis ();
201202 }
202203
204+ public Builder setEnableByteTracking (final boolean enableByteTracking ) {
205+ this .enableByteTracking = enableByteTracking ;
206+ return asThis ();
207+ }
208+
203209 }
204210
205211 final class CSVRecordIterator implements Iterator <CSVRecord > {
@@ -507,7 +513,7 @@ public CSVParser(final Reader reader, final CSVFormat format) throws IOException
507513 @ SuppressWarnings ("resource" )
508514 public CSVParser (final Reader reader , final CSVFormat format , final long characterOffset , final long recordNumber )
509515 throws IOException {
510- this (reader , format , characterOffset , recordNumber , null );
516+ this (reader , format , characterOffset , recordNumber , null , false );
511517 }
512518
513519 /**
@@ -535,12 +541,13 @@ public CSVParser(final Reader reader, final CSVFormat format, final long charact
535541 * @throws CSVException Thrown on invalid input.
536542 * @since 1.13.0.
537543 */
538- private CSVParser (final Reader reader , final CSVFormat format , final long characterOffset , final long recordNumber , final Charset charset )
544+ private CSVParser (final Reader reader , final CSVFormat format , final long characterOffset , final long recordNumber ,
545+ final Charset charset , final boolean enableByteTracking )
539546 throws IOException {
540547 Objects .requireNonNull (reader , "reader" );
541548 Objects .requireNonNull (format , "format" );
542549 this .format = format .copy ();
543- this .lexer = new Lexer (format , new ExtendedBufferedReader (reader , charset ));
550+ this .lexer = new Lexer (format , new ExtendedBufferedReader (reader , charset , enableByteTracking ));
544551 this .csvRecordIterator = new CSVRecordIterator ();
545552 this .headers = createHeaders ();
546553 this .characterOffset = characterOffset ;
0 commit comments