Java源码示例:com.csvreader.CsvReader

示例1
/**
 * @param inputLine
 *            输入待分隔字符串
 * @param delimiter
 *            字符串分割符
 * @return 分隔符分隔后的字符串数组,出现异常时返回为null 支持转义,即数据中可包含分隔符
 * */
public static String[] splitOneLine(String inputLine, char delimiter) {
	String[] splitedResult = null;
	if (null != inputLine) {
		try {
			CsvReader csvReader = new CsvReader(new StringReader(inputLine));
			csvReader.setDelimiter(delimiter);
			if (csvReader.readRecord()) {
				splitedResult = csvReader.getValues();
			}
		} catch (IOException e) {
			// nothing to do
		}
	}
	return splitedResult;
}
 
示例2
@Test
public void get() {
    try {
        CsvReader e = new CsvReader("src/test/resources/aml/iomatrix/testcsv.csv");
        e.readRecord();
        String val = e.get(0);
        Assert.assertEquals("1494574053", val);
        String val2 = e.get(100500);
        Assert.assertEquals("", val2);
        String val3 = e.get("SOME_COLUMN");
        Assert.assertEquals("", val3);
        
        System.out.println("finished");
        
    } catch (Exception ex) {
        fail(ex.getMessage());
    }
}
 
示例3
public static MLDouble readMDoubleFromCSVFile(Path inFilePath, String mName, int nrows, int ncols, char delimiter) throws NumberFormatException, IOException {
    MLDouble mlDouble = new MLDouble(mName, new int[] {nrows, ncols});
    CsvReader cvsReader = new CsvReader(inFilePath.toString());
    cvsReader.setDelimiter(delimiter);
    int i = 0;
    while (cvsReader.readRecord()) {
        String[] rows = cvsReader.getValues();
        int j = 0;
        for (String col : rows) {
            mlDouble.set(new Double(col), i, j);
            j++;
        }
        i++;
    }
    return mlDouble;
}
 
示例4
public static double[][] readDoubleMatrixFromCSVFile(Path inFilePath, int nrows, int ncols, char delimiter) throws NumberFormatException, IOException {
    double[][] mlDouble = new double[nrows][ncols];
    CsvReader cvsReader = new CsvReader(inFilePath.toString());
    cvsReader.setDelimiter(delimiter);
    int i = 0;
    while (cvsReader.readRecord()) {
        String[] rows = cvsReader.getValues();
        int j = 0;
        for (String col : rows) {
            mlDouble[i][j] = Double.parseDouble(col);
            j++;
            if (j >= ncols) {
                break;
            }
        }
        i++;
        if (i >= nrows) {
            break;
        }

    }
    return mlDouble;
}
 
示例5
public static double[] readDoubleArrayFromCSVFile(Path inFilePath,  int nrows, char delimiter) throws NumberFormatException, IOException {
    double[] mlDouble = new double[nrows];
    CsvReader cvsReader = new CsvReader(inFilePath.toString());
    cvsReader.setDelimiter(delimiter);
    int i = 0;
    while (cvsReader.readRecord()) {
        String[] rows = cvsReader.getValues();
        for (String col : rows) {
            mlDouble[i] = Double.parseDouble(col);
        }
        i++;
        if (i >= nrows) {
            break;
        }
    }
    return mlDouble;
}
 
示例6
@Override
@Transactional
public ImportSummary saveDataValueSetCsv( InputStream in, ImportOptions importOptions, JobConfiguration id )
{
    try
    {
        in = StreamUtils.wrapAndCheckCompressionFormat( in );
        CsvReader csvReader = CsvUtils.getReader( in );

        if ( importOptions == null || importOptions.isFirstRowIsHeader() )
        {
            csvReader.readRecord(); // Ignore the first row
        }

        DataValueSet dataValueSet = new StreamingCsvDataValueSet( csvReader );
        return saveDataValueSet( importOptions, id, dataValueSet );
    }
    catch ( Exception ex )
    {
        log.error( DebugUtils.getStackTrace( ex ) );
        notifier.clear( id ).notify( id, ERROR, "Process failed: " + ex.getMessage(), true );
        return new ImportSummary( ImportStatus.ERROR, "The import process failed: " + ex.getMessage() );
    }
}
 
示例7
private List<DataElementGroup> dataElementGroupsFromCsv( CsvReader reader )
    throws IOException
{
    List<DataElementGroup> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            DataElementGroup object = new DataElementGroup();
            setIdentifiableObject( object, values );
            object.setShortName( getSafe( values, 3, object.getName(), 50 ) );
            object.setAutoFields();
            list.add( object );
        }
    }

    return list;
}
 
示例8
private List<CategoryOption> categoryOptionsFromCsv( CsvReader reader )
    throws IOException
{
    List<CategoryOption> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            CategoryOption object = new CategoryOption();
            setIdentifiableObject( object, values );
            object.setShortName( getSafe( values, 3, object.getName(), 50 ) );
            list.add( object );
        }
    }

    return list;
}
 
示例9
private List<Category> categoriesFromCsv( CsvReader reader )
    throws IOException
{
    List<Category> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            Category object = new Category();
            setIdentifiableObject( object, values );
            object.setDescription( getSafe( values, 3, null, 255 ) );
            object.setDataDimensionType( DataDimensionType.valueOf( getSafe( values, 4, DataDimensionType.DISAGGREGATION.toString(), 40 ) ) );
            object.setDataDimension( Boolean.valueOf( getSafe( values, 5, Boolean.FALSE.toString(), 40 ) ) );
            list.add( object );
        }
    }

    return list;
}
 
示例10
private List<CategoryCombo> categoryCombosFromCsv( CsvReader reader )
    throws IOException
{
    List<CategoryCombo> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            CategoryCombo object = new CategoryCombo();
            setIdentifiableObject( object, values );
            object.setDataDimensionType( DataDimensionType.valueOf( getSafe( values, 3, DataDimensionType.DISAGGREGATION.toString(), 40 ) ) );
            object.setSkipTotal( Boolean.valueOf( getSafe( values, 4, Boolean.FALSE.toString(), 40 ) ) );
            list.add( object );
        }
    }

    return list;
}
 
示例11
private List<CategoryOptionGroup> categoryOptionGroupsFromCsv( CsvReader reader )
    throws IOException
{
    List<CategoryOptionGroup> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            CategoryOptionGroup object = new CategoryOptionGroup();
            setIdentifiableObject( object, values );
            object.setShortName( getSafe( values, 3, object.getName(), 50 ) );
            list.add( object );
        }
    }

    return list;
}
 
示例12
private List<OrganisationUnitGroup> orgUnitGroupsFromCsv( CsvReader reader )
    throws IOException
{
    List<OrganisationUnitGroup> list = new ArrayList<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            OrganisationUnitGroup object = new OrganisationUnitGroup();
            setIdentifiableObject( object, values );
            object.setAutoFields();
            object.setShortName( getSafe( values, 3, object.getName(), 50 ) );
            list.add( object );
        }
    }

    return list;
}
 
示例13
/**
 * Returns the CSV file represented by the given input stream as a
 * list of string arrays.
 *
 * @param in the {@link InputStream} representing the CSV file.
 * @param ignoreFirstRow whether to ignore the first row.
 * @return a list of string arrays.
 * @throws IOException
 */
public static List<String[]> readCsvAsList( InputStream in, boolean ignoreFirstRow )
    throws IOException
{
    CsvReader reader = getReader( in );

    if ( ignoreFirstRow )
    {
        reader.readRecord();
    }

    List<String[]> lines = new ArrayList<>();

    while ( reader.readRecord() )
    {
        lines.add( reader.getValues() );
    }

    return lines;
}
 
示例14
public synchronized static SensorObservation getAarhusPollutionObservation(CsvReader streamData, EventDeclaration ed) {

		try {
			// CsvReader streamData = (CsvReader) data;
			int ozone = Integer.parseInt(streamData.get("ozone")), particullate_matter = Integer.parseInt(streamData
					.get("particullate_matter")), carbon_monoxide = Integer.parseInt(streamData.get("carbon_monoxide")), sulfure_dioxide = Integer
					.parseInt(streamData.get("sulfure_dioxide")), nitrogen_dioxide = Integer.parseInt(streamData
					.get("nitrogen_dioxide"));
			Date obTime = sdf.parse(streamData.get("timestamp"));
			PollutionObservation po = new PollutionObservation(0.0, 0.0, 0.0, ozone, particullate_matter,
					carbon_monoxide, sulfure_dioxide, nitrogen_dioxide, obTime);
			// logger.debug(ed.getServiceId() + ": streaming record @" + po.getObTimeStamp());
			po.setObId("AarhusPollutionObservation-" + (int) Math.random() * 10000);
			return po;
		} catch (NumberFormatException | IOException | ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
 
示例15
public static SensorObservation getAarhusWeatherObservation(CsvReader streamData, EventDeclaration ed) {
	try {
		// CsvReader streamData = (CsvReader) data;
		int hum = Integer.parseInt(streamData.get("hum"));
		double tempm = Double.parseDouble(streamData.get("tempm"));
		double wspdm = Double.parseDouble(streamData.get("wspdm"));
		Date obTime = sdf2.parse(streamData.get("TIMESTAMP"));
		WeatherObservation wo = new WeatherObservation(tempm, hum, wspdm, obTime);
		logger.debug(ed.getServiceId() + ": streaming record @" + wo.getObTimeStamp());
		wo.setObId("AarhusWeatherObservation-" + (int) Math.random() * 1000);
		// this.currentObservation = wo;
		return wo;
	} catch (NumberFormatException | IOException | ParseException e) {
		e.printStackTrace();
	}
	return null;

}
 
示例16
private int prepareSafetySwitchTest(boolean safetySwitchParameter, int columnLength) throws IOException {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    CsvWriter csvWriter = new CsvWriter(new BufferedOutputStream(out), ',', Charset.forName("UTF-8"));

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < columnLength; i++) {
        sb.append("a");
    }
    String[] data = new String[] { "fieldValueA", "fieldValueB", sb.toString() };
    csvWriter.writeRecord(data);
    csvWriter.close();

    CsvReader csvReader = new CsvReader(new BufferedInputStream(new ByteArrayInputStream(out.toByteArray())), ',',
            Charset.forName("UTF-8"));
    csvReader.setSafetySwitch(safetySwitchParameter);
    BulkResultSet resultSet = new BulkResultSet(csvReader, Arrays.asList("fieldA", "fieldB", "fieldC"));
    BulkResult result = resultSet.next();
    return ((String) result.getValue("fieldC")).length();
}
 
示例17
public CSVMatrixReader(InputStream inputStream, char delimiter, String encoding) throws IOException {

        Reader rdr = new UnicodeReader(inputStream, encoding);

        reader = new CsvReader(rdr);
        reader.setDelimiter(delimiter);
        reader.setSkipEmptyRecords(false);
        reader.setTrimWhitespace(true);
        readRecord();
    }
 
示例18
public UserBehaviorCsvFileReader(String filePath) throws IOException {

        this.filePath = filePath;
        try {
            csvReader = new CsvReader(filePath);
            csvReader.readHeaders();
        } catch (IOException e) {
            throw new IOException("Error reading TaxiRecords from file: " + filePath, e);
        }
    }
 
示例19
@Override
public Collection<RuleId> listRules(String workflowId, RuleAttributeSet attributeSet) {
    Objects.requireNonNull(workflowId);

    String path = RULES_PREFIX + workflowId + "/data.csv";
    Map<String, String> query = ImmutableMap.of("start", "0",
                                                "count", "-1",
                                                "headers", "true",
                                                "cols", "algoType,contingencyId,indexType");

    try {
        CsvReader csvReader = new CsvReader(httpClient.getHttpRequest(new HistoDbUrl(config, path, query)), ',', StandardCharsets.UTF_8);
        try {
            csvReader.setSafetySwitch(false);
            csvReader.readHeaders();

            List<RuleId> ruleIds = new ArrayList<>();

            while (csvReader.readRecord()) {
                String[] values = csvReader.getValues();
                ruleIds.add(new RuleId(RuleAttributeSet.valueOf(values[0]),
                            new SecurityIndexId(values[1], SecurityIndexType.fromLabel(values[2]))));
            }

            return ruleIds;
        } finally {
            csvReader.close();
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
 
示例20
public static List readHistoDataFromCsv(Path inFilePath, char delimiter) throws NumberFormatException, IOException {
    ArrayList retList = new ArrayList();

    int numberOfCSVLines = countLines(inFilePath);
    numberOfCSVLines = numberOfCSVLines - 1; //take into account header

    CsvReader cvsReader = new CsvReader(inFilePath.toString());
    cvsReader.setDelimiter(delimiter);
    int i = 0;
    cvsReader.readHeaders();


    String[] headers = cvsReader.getHeaders();
    retList.add(headers);

    double[][] mlDouble = new double[numberOfCSVLines][headers.length];

    while (cvsReader.readRecord()) {
        String[] rows = cvsReader.getValues();
        int j = 0;
        for (String col : rows) {
            if (j > 1) {

                mlDouble[i][j - 2] = (col != null) ? Double.parseDouble(col) : 0.0;
            }
            j++;
        }
        i++;
        if (i >= numberOfCSVLines) {
            break;
        }

    }
    retList.add(mlDouble);
    return retList;
}
 
示例21
private List<DataElementGroup> dataElementGroupMembersFromCsv( CsvReader reader )
    throws IOException
{
    CachingMap<String, DataElementGroup> uidMap = new CachingMap<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            String groupUid = values[0];
            String memberUid = values[1];

            DataElementGroup persistedGroup = dataElementGroupService.getDataElementGroupByUid( groupUid );

            if ( persistedGroup != null )
            {
                DataElementGroup group = uidMap.get( groupUid, () -> {
                    DataElementGroup nonPersistedGroup = new DataElementGroup();
                    nonPersistedGroup.setUid( persistedGroup.getUid() );
                    nonPersistedGroup.setName( persistedGroup.getName() );
                    return nonPersistedGroup;
                } );

                DataElement member = new DataElement();
                member.setUid( memberUid );
                group.addDataElement( member );
            }
        }
    }

    return new ArrayList<>( uidMap.values() );
}
 
示例22
private List<IndicatorGroup> indicatorGroupMembersFromCsv( CsvReader reader )
    throws IOException
{
    CachingMap<String, IndicatorGroup> uidMap = new CachingMap<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            String groupUid = values[0];
            String memberUid = values[1];

            IndicatorGroup persistedGroup = indicatorGroupService.getIndicatorGroupByUid( groupUid );

            if ( persistedGroup != null )
            {

                IndicatorGroup group = uidMap.get( groupUid, () -> {
                    IndicatorGroup nonPersistedGroup = new IndicatorGroup();
                    nonPersistedGroup.setUid( persistedGroup.getUid() );
                    nonPersistedGroup.setName( persistedGroup.getName() );
                    return nonPersistedGroup;
                } );

                Indicator member = new Indicator();
                member.setUid( memberUid );
                group.addIndicator( member );
            }
        }
    }
    return new ArrayList<>( uidMap.values() );
}
 
示例23
private List<OrganisationUnitGroup> orgUnitGroupMembersFromCsv( CsvReader reader )
    throws IOException
{
    CachingMap<String, OrganisationUnitGroup> uidMap = new CachingMap<>();

    while ( reader.readRecord() )
    {
        String[] values = reader.getValues();

        if ( values != null && values.length > 0 )
        {
            String groupUid = values[0];
            String memberUid = values[1];

            OrganisationUnitGroup persistedGroup = organisationUnitGroupService.getOrganisationUnitGroup( groupUid );

            if ( persistedGroup != null )
            {

                OrganisationUnitGroup group = uidMap.get( groupUid, () -> {
                    OrganisationUnitGroup nonPersistedGroup = new OrganisationUnitGroup();

                    nonPersistedGroup.setUid( persistedGroup.getUid() );
                    nonPersistedGroup.setName( persistedGroup.getName() );

                    return nonPersistedGroup;
                } );

                OrganisationUnit member = new OrganisationUnit();
                member.setUid( memberUid );
                group.addOrganisationUnit( member );
            }
        }
    }

    return new ArrayList<>( uidMap.values() );
}
 
示例24
public CSPARQLAarhusWeatherStream(String uri, String txtFile, EventDeclaration ed) throws IOException {
	super(uri);
	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
}
 
示例25
public CSPARQLAarhusWeatherStream(String uri, String txtFile, EventDeclaration ed, Date start, Date end)
		throws IOException {
	super(uri);
	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
	this.startDate = start;
	this.endDate = end;
}
 
示例26
public CSPARQLAarhusParkingStream(String uri, String txtFile, EventDeclaration ed) throws IOException {
	super(uri);
	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
}
 
示例27
public CSPARQLAarhusParkingStream(String uri, String txtFile, EventDeclaration ed, Date start, Date end)
		throws IOException {
	super(uri);
	logger.info("init");
	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
	this.startDate = start;
	this.endDate = end;
}
 
示例28
public CSPARQLAarhusPollutionStream(String uri, String txtFile, EventDeclaration ed) throws IOException {
	super(uri);
	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
}
 
示例29
public CSPARQLAarhusPollutionStream(String uri, String txtFile, EventDeclaration ed, Date start, Date end)
		throws IOException {
	super(uri);

	streamData = new CsvReader(String.valueOf(txtFile));
	this.ed = ed;
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
	this.startDate = start;
	this.endDate = end;
}
 
示例30
public CSPARQLAarhusTrafficStream(String uri, String txtFile, EventDeclaration ed, Date start, Date end)
		throws IOException {
	super(uri);
	logger.info("IRI: " + this.getIRI().split("#")[1] + ed.getInternalQos());
	this.startDate = start;
	this.endDate = end;
	messageCnt = 0;
	byteCnt = 0;
	this.txtFile = txtFile;
	this.ed = ed;
	streamData = new CsvReader(String.valueOf(txtFile));
	streamData.setTrimWhitespace(false);
	streamData.setDelimiter(',');
	streamData.readHeaders();
	metaData = new CsvReader("dataset/MetaData/trafficMetaData.csv");
	metaData.readHeaders();
	streamData.readRecord();
	while (metaData.readRecord()) {
		if (streamData.get("REPORT_ID").equals(metaData.get("REPORT_ID"))) {
			// p1Street = metaData.get("POINT_1_STREET");
			// p1City = metaData.get("POINT_1_CITY");
			// p1Lat = metaData.get("POINT_1_LAT");
			// p1Lon = metaData.get("POINT_1_LNG");
			// p1Country = metaData.get("POINT_2_COUNTRY");
			// p2Street = metaData.get("POINT_2_STREET");
			// p2City = metaData.get("POINT_2_CITY");
			// p2Lat = metaData.get("POINT_2_LAT");
			// p2Lon = metaData.get("POINT_2_LNG");
			// p2Country = metaData.get("POINT_2_COUNTRY");
			distance = metaData.get("DISTANCE_IN_METERS");
			if (ed instanceof TrafficReportService)
				((TrafficReportService) ed).setDistance(Integer.parseInt(distance));

			// timestamp = metaData.get("TIMESTAMP");
			// id = metaData.get("extID");
			metaData.close();
			break;
		}
	}
}