Java源码示例:org.supercsv.io.CsvMapReader

示例1
public static List<String> getCsvLines(String filename, String[] headers, boolean skipHeader) throws Exception {

        try (CsvMapReader csvReader = new CsvMapReader(new FileReader(filename), CsvPreference.STANDARD_PREFERENCE)){
            List<String> result = new ArrayList<String>();
            if (skipHeader) {
                csvReader.getHeader(true);
            }
           
            while (csvReader.read(headers) != null ) {
               String rawRow = csvReader.getUntokenizedRow();
               result.add(rawRow);
            }
            return result;
        }  

    }
 
示例2
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;
}
 
示例3
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;

    }
 
示例4
@Override
public List<List<NodeValue>> exec(NodeValue csv) {
    if (csv.getDatatypeURI() != null
            && !csv.getDatatypeURI().equals(datatypeUri)
            && !csv.getDatatypeURI().equals("http://www.w3.org/2001/XMLSchema#string")) {
        LOG.debug("The URI of NodeValue1 MUST be <" + datatypeUri + ">"
                + "or <http://www.w3.org/2001/XMLSchema#string>."
        );
    }
    try {
        String sourceCSV = String.valueOf(csv.asNode().getLiteralLexicalForm());

        InputStream is = new ByteArrayInputStream(sourceCSV.getBytes("UTF-8"));
        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

        CsvMapReader mapReader = new CsvMapReader(br, CsvPreference.STANDARD_PREFERENCE);
        String headers_str[] = mapReader.getHeader(true);

        final List<List<NodeValue>> listNodeValues = new ArrayList<>();
        Node node;
        NodeValue nodeValue;
        for (String header : headers_str) {
            node = NodeFactory.createLiteral(header);
            nodeValue = new NodeValueNode(node);
            listNodeValues.add(Collections.singletonList(nodeValue));
        }
        return listNodeValues;
    } catch (Exception ex) {
        if(LOG.isDebugEnabled()) {
            Node compressed = LogUtils.compress(csv.asNode());
            LOG.debug("No evaluation for " + compressed, ex);
        }
        throw new ExprEvalException("No evaluation ", ex);
    }
}
 
示例5
@Override
public void setup(OperatorContext context)
{
  delimitedParserSchema = new DelimitedSchema(schema);
  preference = new CsvPreference.Builder(delimitedParserSchema.getQuoteChar(),
      delimitedParserSchema.getDelimiterChar(), delimitedParserSchema.getLineDelimiter()).build();
  nameMapping = delimitedParserSchema.getFieldNames().toArray(
      new String[delimitedParserSchema.getFieldNames().size()]);
  header = StringUtils.join(nameMapping, (char)delimitedParserSchema.getDelimiterChar() + "");
  processors = getProcessor(delimitedParserSchema.getFields());
  csvStringReader = new ReusableStringReader();
  csvMapReader = new CsvMapReader(csvStringReader, preference);
  csvBeanReader = new CsvBeanReader(csvStringReader, preference);
}
 
示例6
private void init()
{

  delimitedParserSchema = new DelimitedSchema(schema);
  preference = new CsvPreference.Builder(delimitedParserSchema.getQuoteChar(),
      delimitedParserSchema.getDelimiterChar(), delimitedParserSchema.getLineDelimiter()).build();
  nameMapping = delimitedParserSchema.getFieldNames()
      .toArray(new String[delimitedParserSchema.getFieldNames().size()]);
  header = StringUtils.join(nameMapping, (char)delimitedParserSchema.getDelimiterChar() + "");
  processors = getProcessor(delimitedParserSchema.getFields());
  csvStringReader = new ReusableStringReader();
  csvMapReader = new CsvMapReader(csvStringReader, preference);
}
 
示例7
@Test
public void testGetByColumnName() throws IOException {
	String csv = "John,Connor";
	String[] mapping = { "firstName", "lastName" };
	
	CsvMapReader mapReader = new CsvMapReader(new StringReader(csv), STANDARD_PREFERENCE);
	Map<String, String> line = mapReader.read(mapping);
	
	Assert.assertNotNull(line);
	Assert.assertEquals(2, line.size());
	Assert.assertEquals("John", line.get("firstName"));
	Assert.assertEquals("Connor", line.get("lastName"));
}
 
示例8
/**
 * 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;
}
 
示例9
static
public TableEvaluationRequest readTable(BufferedReader reader, CsvPreference format) throws IOException {
	CsvMapReader parser = new CsvMapReader(reader, format);

	String[] header = parser.getHeader(true);

	List<String> columns = Arrays.asList(header);

	TableEvaluationRequest tableRequest = new TableEvaluationRequest()
		.setColumns(columns);

	String idColumn = tableRequest.getIdColumn();

	List<EvaluationRequest> requests = new ArrayList<>();

	while(true){
		Map<String, String> row = parser.read(header);
		if(row == null){
			break;
		}

		String id = null;

		if(idColumn != null){
			id = row.remove(idColumn);
		}

		EvaluationRequest request = new EvaluationRequest(id)
			.setArguments(row);

		requests.add(request);
	}

	tableRequest.setRequests(requests);

	parser.close();

	return tableRequest;
}