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;
}
}
}