本文整理汇总了Java中org.supercsv.io.ICsvMapReader类的典型用法代码示例。如果您正苦于以下问题:Java ICsvMapReader类的具体用法?Java ICsvMapReader怎么用?Java ICsvMapReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ICsvMapReader类属于org.supercsv.io包,在下文中一共展示了ICsvMapReader类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: readWithCsvMapReader
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
private Map<String, String> readWithCsvMapReader(Path mappingFile) throws IOException {
Map<String, String> retMap = new HashMap<>();
try (ICsvMapReader mapReader = new CsvMapReader(Files.newBufferedReader(mappingFile, StandardCharsets.UTF_8), CsvPreference.STANDARD_PREFERENCE)) {
final String[] header = mapReader.getHeader(true);
log.info(" cvsheader length: " + header.length);
final CellProcessor[] rowProcessors = new CellProcessor[header.length];
for (int i = 0; i < rowProcessors.length; i++) {
if (i == 0) {
rowProcessors[i] = new NotNull();
} else {
rowProcessors[i] = new NotNull();
}
}
Map<String, Object> componentMap;
while ((componentMap = mapReader.read(header, rowProcessors)) != null) {
String psseId = (String) componentMap.get(header[0]);
String rdfId = (String) componentMap.get(header[1]);
if (psseId == null) {
log.warn("psseId=" + psseId + ", rdfId=" + rdfId);
} else {
if (retMap.containsKey(psseId)) {
log.warn("psseId=" + psseId + " already in the map");
}
retMap.put(psseId, rdfId);
}
}
}
if (log.isTraceEnabled()) {
log.trace("ids map: " + retMap);
}
log.info("ids map: " + retMap);
return retMap;
}
示例2: readWithCsvMapReader
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
public static Map<String, String> readWithCsvMapReader(Path dicoFile) throws Exception {
Map<String, String> retMap = new HashMap<>();
try (ICsvMapReader mapReader = new CsvMapReader(Files.newBufferedReader(dicoFile, StandardCharsets.UTF_8), CsvPreference.EXCEL_NORTH_EUROPE_PREFERENCE)) {
final String[] header = mapReader.getHeader(true);
LOGGER.debug(" cvsheader length: " + header.length);
final CellProcessor[] rowProcessors = new CellProcessor[header.length];
for (int i = 0; i < rowProcessors.length; i++) {
if (i == 0) {
rowProcessors[i] = new NotNull();
} else {
rowProcessors[i] = null;
}
}
Map<String, Object> componentMap;
while ((componentMap = mapReader.read(header, rowProcessors)) != null) {
//System.out.println(String.format("lineNo=%s, rowNo=%s, mapping=%s", mapReader.getLineNumber(), mapReader.getRowNumber(), customerMap));
String eurostagId = (String) componentMap.get(header[1]);
String cimId = (String) componentMap.get(header[0]);
if (eurostagId == null) {
LOGGER.warn("eurostagId=" + eurostagId + ", cimId=" + cimId);
} else {
if (retMap.containsKey(eurostagId)) {
LOGGER.warn("eurostagId=" + eurostagId + " already in the map");
}
retMap.put(eurostagId, cimId);
}
}
}
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("ids map: " + retMap);
}
return retMap;
}
示例3: parseDetailedCsvBill
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
private void parseDetailedCsvBill(InputStream inputStream, Collection<String> ignorableInvoiceCharge,
Set<String> configuredAccounts, BiConsumer<Map<String, AwsAccountDetailDto>, String> hourlyStatsConsumer,
Consumer<Map<String, AwsAccountDetailDto>> monthlyStatsConsumer) throws IOException {
final CsvPreference STANDARD_SKIP_COMMENTS = new CsvPreference.Builder(
CsvPreference.STANDARD_PREFERENCE)
.skipComments(new CommentStartsWith(AWS_SKIP_COMMENTS))
.build();
try (InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
ICsvMapReader mapReader = new CsvMapReader(reader, STANDARD_SKIP_COMMENTS)) {
final String[] header = mapReader.getHeader(true);
List<CellProcessor> processorList = new ArrayList<>();
final CellProcessor[] basicProcessors = getDetailedProcessors(header);
processorList.addAll(Arrays.asList(basicProcessors));
List<String> tagHeaders = new ArrayList<>();
// Add new cell-processors for each extra tag column
int numberOfTags = header.length - basicProcessors.length;
if (numberOfTags > 0) {
for (int i = 0; i < numberOfTags; i++) {
processorList.add(new Optional());
tagHeaders.add(header[basicProcessors.length + i]);
}
}
CellProcessor[] cellProcessorArray = new CellProcessor[processorList.size()];
Map<String, AwsAccountDetailDto> monthlyBill = new HashMap<>();
cellProcessorArray = processorList.toArray(cellProcessorArray);
Map<String, Object> rowMap;
Long prevRowTime = null;
Long prevRowEndTime;
String interval = null;
while ((rowMap = mapReader.read(header, cellProcessorArray)) != null) {
LocalDateTime currRowLocalDateTime = (LocalDateTime) rowMap
.get(DetailedCsvHeaders.USAGE_START_DATE);
Long curRowTime = getMillisForHour(currRowLocalDateTime);
if (prevRowTime != null && curRowTime != null && !prevRowTime.equals(curRowTime)
&& !StringUtils.contains(interval, "-")) {
// This indicates that we have processed all rows belonging to a corresponding hour in the
// current month bill. Consume the batch
hourlyStatsConsumer.accept(monthlyBill, interval);
}
try {
readRow(rowMap, monthlyBill, tagHeaders, ignorableInvoiceCharge, configuredAccounts);
} catch (Exception e) {
this.logger.warning(String.format("Got error while parsing a row in aws bill of %s",
getStringFieldValue(rowMap, DetailedCsvHeaders.PAYER_ACCOUNT_ID) + e));
}
if (curRowTime != null) {
prevRowTime = curRowTime;
prevRowEndTime = getMillisForHour((LocalDateTime) rowMap.get(DetailedCsvHeaders.USAGE_END_DATE));
interval = createInterval(prevRowTime, prevRowEndTime);
}
}
// Consume the final batch of parsed rows
hourlyStatsConsumer.accept(monthlyBill, interval);
monthlyStatsConsumer.accept(monthlyBill);
}
}
示例4: extractAndParseCsvFile
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
private static List<Map<String, Object>> extractAndParseCsvFile(Path filePath) throws IOException {
List<Map<String, Object>> csvRows = new ArrayList<>();
String AWS_SKIP_COMMENTS = "Don't see your tags in the report";
AWSCsvBillParser.unzip(filePath.toString(), filePath.getParent().toString());
String unzippedCsvFilePathStr = filePath.toString()
.substring(0, filePath.toString().lastIndexOf('.'));
final CsvPreference STANDARD_SKIP_COMMENTS = new CsvPreference.Builder(
CsvPreference.STANDARD_PREFERENCE)
.skipComments(new CommentStartsWith(AWS_SKIP_COMMENTS))
.build();
try (InputStreamReader reader = new InputStreamReader(new FileInputStream(
Paths.get(unzippedCsvFilePathStr).toFile()), "UTF-8");
ICsvMapReader mapReader = new CsvMapReader(reader, STANDARD_SKIP_COMMENTS)) {
final String[] header = mapReader.getHeader(true);
List<CellProcessor> processorList = new ArrayList<>();
final CellProcessor[] basicProcessors = AWSCsvBillParser.getDetailedProcessors(header);
processorList.addAll(Arrays.asList(basicProcessors));
// Add new cell-processors for each extra tag column
int numberOfTags = header.length - basicProcessors.length;
if (numberOfTags > 0) {
for (int i = 0; i < numberOfTags; i++) {
processorList.add(new org.supercsv.cellprocessor.Optional());
}
}
CellProcessor[] cellProcessorArray = new CellProcessor[processorList.size()];
cellProcessorArray = processorList.toArray(cellProcessorArray);
Map<String, Object> row;
while ((row = mapReader.read(header, cellProcessorArray)) != null) {
csvRows.add(row);
}
return csvRows;
} catch (Exception e) {
throw e;
}
}
示例5: readSurveyResponses
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
public List<SurveyResponse> readSurveyResponses(
Survey s,
Reader r)
throws SurveyException
{
List<SurveyResponse> responses = new LinkedList<SurveyResponse>();
final CellProcessor[] cellProcessors = s.makeProcessorsForResponse();
try{
ICsvMapReader reader = new CsvMapReader(r, CsvPreference.STANDARD_PREFERENCE);
final String[] header = reader.getHeader(true);
Map<String, Object> headerMap;
SurveyResponse sr = null;
while ((headerMap = reader.read(header, cellProcessors)) != null) {
// loop through one survey response (i.e. per responseid) at a time
if ( sr == null || !sr.getSrid().equals(headerMap.get("responseid"))){
if (sr!=null)
// add this to the list of responses and create a new one
responses.add(sr);
sr = new SurveyResponse(s, (String) headerMap.get("workerid"));
sr.setSrid((String) headerMap.get("responseid"));
}
// fill out the individual question responses
IQuestionResponse questionResponse = new QuestionResponse(s, (String) headerMap.get("questionid"), (Integer) headerMap.get("questionpos"));
for (IQuestionResponse qr : sr.getAllResponses())
if (qr.getQuestion().id.equals(headerMap.get("questionid"))) {
// if we already have a QuestionResponse object matching this id, set it
questionResponse = qr;
break;
}
SurveyDatum c;
if (!Question.customQuestion(questionResponse.getQuestion().id))
c = questionResponse.getQuestion().getOptById((String) headerMap.get("optionid"));
else c = new StringDatum((String) headerMap.get("optionid"), -1, -1, -1);
Integer i = (Integer) headerMap.get("optionpos");
questionResponse.getOpts().add(new OptTuple(c,i));
sr.getAllResponses().add(questionResponse);
}
reader.close();
return responses;
} catch (IOException io) {
io.printStackTrace();
}
return null;
}
示例6: getReader
import org.supercsv.io.ICsvMapReader; //导入依赖的package包/类
/**
* This method creates an instance of csvMapReader.
*
* @param reader
* @param preference
* @return CSV Map Reader
*/
@Override
protected ICsvMapReader getReader(ReusableStringReader reader, CsvPreference preference)
{
csvReader = new CsvMapReader(reader, preference);
return csvReader;
}