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

View differences:

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