Revision 47655 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/simplereaders/CSVReaderSuperCSV.java
CSVReaderSuperCSV.java | ||
---|---|---|
115 | 115 |
if( data_file.length()< 10*1024*1024 ) { |
116 | 116 |
return null; |
117 | 117 |
} |
118 |
String charset = CSVStoreParameters.getCharset(params); |
|
119 |
File index_file = getIndexFile(data_file); |
|
120 |
|
|
121 |
theReader = new RandomAccessFileReader(data_file, charset); |
|
122 |
|
|
118 | 123 |
Function<BufferedReader, Integer> numberOfLinesInRecord = null; |
119 |
if(this.hasMultilineRecords(status)){ |
|
120 |
numberOfLinesInRecord = new Function<BufferedReader, Integer>() { |
|
121 |
@Override |
|
122 |
public Integer apply(BufferedReader breader) { |
|
123 |
CloseShieldReader theReader = CloseShieldReader.wrap(breader); |
|
124 |
CsvListReader parser = new CsvListReader(theReader, getCSVPreferences()); |
|
125 |
try { |
|
126 |
List<String> values = parser.read(); |
|
127 |
} catch (IOException ex) { |
|
128 |
return 1; |
|
124 |
|
|
125 |
if (theReader.isRecomemendedTheRecreationOfTheLinesIndex(index_file)) { |
|
126 |
if (this.hasMultilineRecords(status)) { |
|
127 |
numberOfLinesInRecord = new Function<BufferedReader, Integer>() { |
|
128 |
@Override |
|
129 |
public Integer apply(BufferedReader breader) { |
|
130 |
CloseShieldReader theReader = CloseShieldReader.wrap(breader); |
|
131 |
CsvListReader parser = new CsvListReader(theReader, getCSVPreferences()); |
|
132 |
try { |
|
133 |
List<String> values = parser.read(); |
|
134 |
} catch (IOException ex) { |
|
135 |
return 1; |
|
136 |
} |
|
137 |
return parser.getLineNumber(); |
|
129 | 138 |
} |
130 |
return parser.getLineNumber(); |
|
131 |
} |
|
132 |
}; |
|
139 |
}; |
|
140 |
} |
|
141 |
theIndex = theReader.createOrOpenIndexOfLines(index_file, false, FILTER_NONE, status, numberOfLinesInRecord); |
|
142 |
} else { |
|
143 |
theIndex = new RandomAccessFileIndex(index_file); |
|
133 | 144 |
} |
134 | 145 |
|
135 |
String charset = CSVStoreParameters.getCharset(params); |
|
136 |
File index_file = getIndexFile(data_file); |
|
137 |
|
|
138 |
theReader = new RandomAccessFileReader(data_file, charset); |
|
139 |
theIndex = theReader.createOrOpenIndexOfLines(index_file, false, FILTER_NONE, status, numberOfLinesInRecord); |
|
140 |
|
|
141 | 146 |
SuperCSVList list = new SuperCSVList( |
142 | 147 |
theReader, |
143 | 148 |
theIndex, |
Also available in: Unified diff