Example usage for org.apache.commons.csv CSVParser close

List of usage examples for org.apache.commons.csv CSVParser close

Introduction

In this page you can find the example usage for org.apache.commons.csv CSVParser close.

Prototype

@Override
public void close() throws IOException 

Source Link

Document

Closes resources.

Usage

From source file:org.apache.tika.parser.isatab.ISATabAssayParser.java

@Override
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
        throws IOException, SAXException, TikaException {

    // Automatically detect the character encoding
    AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata,
            context.get(ServiceLoader.class, LOADER));
    CSVParser csvParser = null;

    try {/*  w w  w. j  a  v  a  2  s . c  o  m*/
        Charset charset = reader.getCharset();
        MediaType type = new MediaType(MediaType.application("x-isatab-assay"), charset);
        metadata.set(Metadata.CONTENT_TYPE, type.toString());
        metadata.set(Metadata.CONTENT_ENCODING, charset.name());

        XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
        xhtml.newline();

        csvParser = new CSVParser(reader, CSVFormat.TDF);

        xhtml.startDocument();
        xhtml.newline();

        xhtml.startElement("table");
        xhtml.newline();

        List<CSVRecord> records = csvParser.getRecords();

        for (int i = 0; i < records.get(0).size(); i++) {
            xhtml.startElement("th");
            xhtml.characters(records.get(0).get(i));
            xhtml.endElement("th");
            xhtml.newline();
        }

        for (int i = 1; i < records.size(); i++) {
            xhtml.startElement("tr");
            xhtml.newline();

            for (int j = 0; j < records.get(i).size(); j++) {
                xhtml.startElement("td");
                xhtml.characters(records.get(i).get(j));
                xhtml.endElement("td");
                xhtml.newline();
            }

            xhtml.endElement("tr");
            xhtml.newline();
        }

        xhtml.endElement("table");
        xhtml.newline();

        xhtml.endDocument();

    } finally {
        reader.close();
        csvParser.close();
    }
}

From source file:org.apache.tika.parser.isatab.ISATabStudyParser.java

@Override
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
        throws IOException, SAXException, TikaException {

    // Automatically detect the character encoding
    AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata,
            context.get(ServiceLoader.class, LOADER));
    CSVParser csvParser = null;

    try {/*from   w ww  .j a  v  a2s. co m*/
        Charset charset = reader.getCharset();
        MediaType type = new MediaType(MediaType.application("x-isatab-study"), charset);
        metadata.set(Metadata.CONTENT_TYPE, type.toString());
        metadata.set(Metadata.CONTENT_ENCODING, charset.name());

        XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
        xhtml.newline();

        csvParser = new CSVParser(reader, CSVFormat.TDF);

        xhtml.startDocument();
        xhtml.newline();

        xhtml.startElement("table");
        xhtml.newline();

        List<CSVRecord> records = csvParser.getRecords();

        for (int i = 0; i < records.get(0).size(); i++) {
            xhtml.startElement("th");
            xhtml.characters(records.get(0).get(i));
            xhtml.endElement("th");
            xhtml.newline();
        }

        for (int i = 1; i < records.get(0).size(); i++) {
            xhtml.startElement("tr");
            xhtml.newline();

            for (int j = 0; j < records.get(i).size(); j++) {
                xhtml.startElement("td");
                xhtml.characters(records.get(i).get(j));
                xhtml.endElement("td");
                xhtml.newline();
            }

            xhtml.endElement("tr");
            xhtml.newline();
        }

        xhtml.endElement("table");
        xhtml.newline();

        xhtml.endDocument();

    } finally {
        reader.close();
        csvParser.close();
    }
}

From source file:org.chanthing.csvtool.CSVTrans.java

public static void main(String[] args) throws IOException {
    CSVParser reader = null;
    CSVPrinter writer = null;//ww w . java  2  s  .com
    CSVXform xFormer = null;

    if (args.length < 2) {
        System.out.println("Usage: java CSVTrans <src_csv_file> <dest_csv_file>");
        return;
    }

    try {
        reader = new CSVParser(new FileReader(args[0]), srcFormat);
        writer = new CSVPrinter(new FileWriter(args[1]), destFormat);
        xFormer = new CSVXform(destHeaders.size(), xforms);

        writer.printRecord(destHeaders); // Write out headers to destination file

        /*
         *  For each record in the input file
         */
        for (CSVRecord record : reader) {
            List<String> destRecord = xFormer.xform(record);
            writer.printRecord(destRecord);
        }

    } finally {
        if (reader != null) {
            reader.close();
        }
        if (writer != null) {
            writer.close();
        }
    }
}

From source file:org.etudes.mneme.tool.UploadCsv.java

/**
 * Parse the contents into CSV records./*from   ww w  . ja  v a 2s. co  m*/
 */
protected void parse() {
    try {
        Reader in = new StringReader(this.contents);
        CSVParser parser = new CSVParser(in, CSVFormat.RFC4180);
        this.records = parser.getRecords();
        parser.close();
    } catch (IOException e) {
    } finally {

    }
}

From source file:org.mercycorps.translationcards.txcmaker.GetTxcServlet.java

private void produceTxcJson(Drive drive, HttpServletRequest req, HttpServletResponse resp) throws IOException {
    TxcPortingUtility.ExportSpec exportSpec = new TxcPortingUtility.ExportSpec()
            .setDeckLabel(req.getParameter("deckName")).setPublisher(req.getParameter("publisher"))
            .setDeckId(req.getParameter("deckId")).setLicenseUrl(req.getParameter("licenseUrl"))
            .setLocked(req.getParameter("locked") != null);
    String spreadsheetFileId = req.getParameter("docId");
    Drive.Files.Export sheetExport = drive.files().export(spreadsheetFileId, CSV_EXPORT_TYPE);
    Reader reader = new InputStreamReader(sheetExport.executeMediaAsInputStream());
    CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT.withHeader());
    try {/*from ww  w.  jav a  2s.co  m*/
        for (CSVRecord row : parser) {
            String language = row.get(SRC_HEADER_LANGUAGE);
            TxcPortingUtility.CardSpec card = new TxcPortingUtility.CardSpec()
                    .setLabel(row.get(SRC_HEADER_LABEL)).setFilename(row.get(SRC_HEADER_FILENAME))
                    .setTranslationText(row.get(SRC_HEADER_TRANSLATION_TEXT));
            exportSpec.addCard(language, card);
        }
    } finally {
        parser.close();
        reader.close();
    }
    resp.getWriter().println(TxcPortingUtility.buildTxcJson(exportSpec));
}

From source file:org.nuxeo.ecm.user.center.profile.UserProfileImporter.java

public void doImport(CoreSession session) {
    UserProfileService ups = Framework.getLocalService(UserProfileService.class);

    config = ups.getImporterConfig();//from w  w  w .j  a  v  a 2  s  .c om
    if (config == null) {
        log.error("No importer configuration could be found");
        return;
    }

    dataFileName = config.getDataFileName();
    if (dataFileName == null) {
        log.error("No importer dataFileName was supplied");
        return;
    }

    InputStream is = getResourceAsStream(dataFileName);
    if (is == null) {
        log.error("Error locating CSV data file: " + dataFileName);
        return;
    }

    Reader in = new BufferedReader(new InputStreamReader(is));
    CSVParser parser = null;

    try {
        parser = CSVFormat.DEFAULT.withEscape(escapeCharacter).withHeader().parse(in);
        doImport(session, parser, ups);
    } catch (IOException e) {
        log.error("Unable to read CSV file", e);
    } finally {
        if (parser != null) {
            try {
                parser.close();
            } catch (IOException e) {
                log.debug(e, e);
            }
        }
    }

}

From source file:org.shareok.data.documentProcessor.CsvHandler.java

/**
 * Reads out the data in an excel file and stores data in a hashmap
 * <p>Also sets the total record number and file heading</p>
 * /*from ww w .j  a v a 2 s.c o m*/
 * @throws Exception
 */
@Override
public void readData() {
    FileReader fileReader = null;
    CSVParser csvFileParser = null;
    String[] headMapping = null;
    //CSVFormat csvFileFormat = CSVFormat.DEFAULT.withHeader(FILE_HEADER_MAPPING);

    try {
        //initialize FileReader object
        fileReader = new FileReader(fileName);

        //initialize CSVParser object
        if (null == csvFormat) {
            csvFormat = CSVFormat.DEFAULT;
        }
        csvFileParser = new CSVParser(fileReader, csvFormat);

        //Get a list of CSV file records
        List csvRecords = csvFileParser.getRecords();

        int size = csvRecords.size();

        setRecordCount(size);

        data = new HashMap();

        //Read the CSV file records starting from the second record to skip the header
        for (int i = 0; i < size; i++) {
            CSVRecord record = (CSVRecord) csvRecords.get(i);
            if (null != record) {
                if (i == 0) {
                    List headMappingList = new ArrayList();
                    Iterator it = record.iterator();
                    while (it.hasNext()) {
                        String value = (String) it.next();
                        headMappingList.add(value);
                    }
                    headMapping = new String[headMappingList.size()];
                    headMapping = (String[]) headMappingList.toArray(headMapping);
                    setFileHeadMapping(headMapping);
                } else {
                    for (int j = 0; j < fileHeadMapping.length; j++) {
                        String colName = fileHeadMapping[j].trim();
                        String key = colName + "-" + i;
                        data.put(key, record.get(j));
                    }
                }
            }
        }

    } catch (Exception e) {
        System.out.println("Error in CsvFileReader !!!");
        e.printStackTrace();
    } finally {
        try {
            fileReader.close();
            csvFileParser.close();
        } catch (IOException e) {
            System.out.println("Error while closing fileReader/csvFileParser !!!");
            e.printStackTrace();
        }
    }
}

From source file:org.thegalactic.context.io.ContextSerializerCsv.java

/**
 * Read a context from a csv file./*  w w w  . j a  v  a  2s .com*/
 *
 * The following format is respected:
 *
 * The first line contains the attribute names, the other lines contains the
 * observations identifier followed by boolean values
 *
 * ~~~
 * "",a,b,c,d,e
 * 1,1,0,1,0,0
 * 2,1,1,0,0,0
 * 3,0,1,0,1,1
 * 4,0,0,1,0,1
 * ~~~
 *
 * If the first attribute is the empty string, the first column corresponds
 * to the individual identifiers. In the other case, the individual
 * identifiers will be generated by successive integers.
 *
 * ~~~
 * a,b,c,d,e
 * 1,0,1,0,0
 * 1,1,0,0,0
 * 0,1,0,1,1
 * 0,0,1,0,1
 * ~~~
 *
 * @param context a context to read
 * @param file    a file
 *
 * @throws IOException When an IOException occurs
 */
public void read(Context context, BufferedReader file) throws IOException {
    // Parse the file
    CSVParser parser = CSVFormat.RFC4180.parse(file);

    // Get the records and record size
    List<CSVRecord> records = parser.getRecords();
    int length = records.size();

    // Verify length
    if (length == 0) {
        throw new IOException("CSV cannot be empty");
    }

    // Get the attributes and the attribute size
    CSVRecord attributes = records.get(0);
    int size = attributes.size();

    // Detect invalid attribute size
    if (size == 1 && attributes.get(0).equals("")) {
        throw new IOException("Attribute size cannot be 0");
    }

    // Index of the first attribute
    int first = 0;
    if (attributes.get(0).equals("")) {
        first = 1;
    }

    // Get the attributes
    for (int i = first; i < size; i++) {
        String attribute = attributes.get(i);

        // Detect duplicated attribute
        if (!context.addToAttributes(attribute)) {
            throw new IOException("Duplicated attribute");
        }

        // Detect empty attribute
        if ("".equals(attribute)) {
            throw new IOException("Empty attribute");
        }
    }

    // Get the data
    for (int j = 1; j < length; j++) {
        // Get the current record
        CSVRecord record = records.get(j);

        // Detect incorrect size
        if (record.size() != size) {
            throw new IOException("Line does not have the correct number of attributes");
        }

        // Get the observation identifier
        String identifier;
        if (first == 1) {
            identifier = record.get(0);
        } else {
            identifier = String.valueOf(j);
        }

        // Detect duplicated identifier
        if (!context.addToObservations(identifier)) {
            throw new IOException("Duplicated identifier");
        }

        // Add the extent/intent for the current identifier and current attribute
        for (int i = first; i < size; i++) {
            if (record.get(i).equals("1")) {
                context.addExtentIntent(identifier, attributes.get(i));
            }
        }
    }

    // Close the parser
    parser.close();
    context.setBitSets();
}

From source file:org.wso2.carbon.event.simulator.csvFeedSimulation.core.CSVFeedEventSimulator.java

/**
 * This method must be called within a synchronized block to avoid multiple file simulators from running simultaneously.
 * Read the values from uploaded CSV file and convert those values into event and send those events to
 * input handler//  w  ww.ja  va2 s  .  c om
 * <p>
 * <p>
 * To read the CSV file It uses CSV parser Library.
 * {@link <a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVParser.html">CSVParser</a>}
 * </p>
 * <p>
 * <p>
 * CSV file can be separated by one of these fallowing character , , ; , \t by default
 * It has capability to have user defined delimiter
 * Any field may be quoted (with double quotes)
 * Fields with embedded commas or delimiter characters must be double quoted.
 * </p>
 * <p>
 * Initialize CSVParser
 *
 * @param executionPlanDto ExecutionPlanDto
 * @param csvFileConfig    CSVFileSimulationDto
 */
private void sendEvent(ExecutionPlanDto executionPlanDto, CSVFileSimulationDto csvFileConfig) {

    /*
      return no of events read from CSV file during ever iteration
     */
    long noOfEvents = 0;
    int delay = csvFileConfig.getDelay();
    /*
    Reader for reading character streams from file
     */
    Reader in = null;
    /*
    CSVParser to read CSV Values
     */
    CSVParser csvParser = null;
    if (delay <= 0) {
        log.warn("Events will be sent continuously since the delay between events are set to " + delay
                + "milliseconds");
        delay = 0;
    }

    try {
        /*
        Initialize Reader
         */
        in = new FileReader(String.valueOf(Paths.get(System.getProperty("java.io.tmpdir"),
                csvFileConfig.getFileDto().getFileInfo().getFileName())));

        /*
        Initialize CSVParser with appropriate CSVFormat according to delimiter
         */

        switch (csvFileConfig.getDelimiter()) {
        case ",":
            csvParser = CSVParser.parse(in, CSVFormat.DEFAULT);
            break;
        case ";":
            csvParser = CSVParser.parse(in, CSVFormat.EXCEL);
            break;
        case "\\t":
            csvParser = CSVParser.parse(in, CSVFormat.TDF);
            break;
        default:
            csvParser = CSVParser.parse(in, CSVFormat.newFormat(csvFileConfig.getDelimiter().charAt(0)));
        }

        int attributeSize = executionPlanDto.getInputStreamDtoMap().get(csvFileConfig.getStreamName())
                .getStreamAttributeDtos().size();

        /*
        Iterate through the CSV file line by line
         */

        for (CSVRecord record : csvParser) {
            try {
                synchronized (this) {
                    if (isStopped) {
                        isStopped = false;
                        break;
                    }
                    if (isPaused) {
                        this.wait();
                    }
                }

                if (record.size() != attributeSize) {
                    log.warn("No of attribute is not equal to attribute size: " + attributeSize + " is needed"
                            + "in Row no:" + noOfEvents + 1);
                }
                String[] attributes = new String[attributeSize];
                noOfEvents = csvParser.getCurrentLineNumber();

                for (int i = 0; i < record.size(); i++) {
                    attributes[i] = record.get(i);
                }

                //convert Attribute values into event
                Event event = EventConverter.eventConverter(csvFileConfig.getStreamName(), attributes,
                        executionPlanDto);
                // TODO: 13/12/16 delete sout
                System.out.println("Input Event " + Arrays.deepToString(event.getEventData()));
                //

                //send the event to input handler
                send(csvFileConfig.getStreamName(), event);

                //delay between two events
                if (delay > 0) {
                    Thread.sleep(delay);
                }
            } catch (EventSimulationException e) {
                log.error("Event dropped due to Error occurred during generating an event" + e.getMessage());
            } catch (InterruptedException e) {
                log.error("Error occurred during send event" + e.getMessage());
            }
        }

    } catch (IllegalArgumentException e) {
        // TODO: 02/12/16 proper error message
        throw new EventSimulationException("File Parameters are null" + e.getMessage());
    } catch (FileNotFoundException e) {
        throw new EventSimulationException(
                "File not found :" + csvFileConfig.getFileDto().getFileInfo().getFileName());
    } catch (IOException e) {
        throw new EventSimulationException("Error occurred while reading the file");
    } finally {
        try {
            if (in != null && csvParser != null)
                in.close();
            csvParser.close();
        } catch (IOException e) {
            throw new EventSimulationException("Error occurred during closing the file");
        }
    }
}

From source file:otn.mobile.bl.TrackServicesHandler.java

public OtnServiceTrackResponse addTracks(OtnServiceTrackRequest request) {

    //*********************** Variables ***************************
    OtnServiceTrackResponse response = new OtnServiceTrackResponse();
    User users;//from  w ww.  j  a  v a2s.  c o  m

    TransportType transport_type = null;

    Weather weather;

    WeatherType weather_type;

    Apps app = null;

    Source source = null;

    Track track = new Track();

    Track subTracks;

    TrackRating track_rating;

    TrackRatingType track_rating_type;

    ArrayList<OtnServiceSubTracksResponse> trackList = new ArrayList<OtnServiceSubTracksResponse>();

    ArrayList<OtnServiceWeatherRatings> weatherListparams = null;

    ArrayList<OtnServiceGeometryPoints> geometryPointsListparams = null;

    byte[] trackFileCsv = null;
    //************************* Action ****************************
    System.out.println("------------Start---------------");

    try {
        //**********************find user*****************************

        users = em.find(User.class, request.getUserId());

        if (users != null) {

            System.out.println("=====================================");
            System.out.println("user id " + users.getUserId());

        } else {
            System.out.println("=====================================");
            System.out.println("user not found");
            em.getTransaction().begin();
            users = new User();
            users.setUserId(request.getUserId());
            em.persist(users);
            em.flush();
            em.getTransaction().commit();
            em.clear();
            System.out.println("user created");
        }

        //***********************find transportID******************************
        if (request.getTransportId() != 0) {

            transport_type = em.find(TransportType.class, request.getTransportId());

            if (transport_type != null) {
                System.out.println("=====================================");
                System.out.println("transport id " + transport_type.getTransportTypeId());
                track.setTransportTypeId(transport_type);
            } else {
                response.setMessage("transport type id does not exist");
                response.setResponseCode(1);
                return response;
            }
        }
        //***********************find weatherID******************************
        //            if (request.getWeatherId() != 0) {
        //                weather = em.find(WeatherType.class, request.getWeatherId());
        //
        //                if (weather != null) {
        //                    System.out.println("=====================================");
        //                    System.out.println("weather id " + weather.getWeatherId());
        //                   
        //                } else {
        //                    response.setMessage("weather condition id does not exist");
        //                    response.setResponseCode(1);
        //                    return response;
        //                }
        //            }

        //***********************find app name******************************
        if (request.getAppId() != 0) {
            app = em.find(Apps.class, request.getAppId());

            if (app != null) {
                System.out.println("=====================================");
                System.out.println("app id " + app.getName());
                track.setAppId(app);
            } else {
                response.setMessage("application does not exist");
                response.setResponseCode(1);
                return response;
            }
        }
        //***********************find sourceId******************************
        if (request.getSourceId() != 0) {
            source = em.find(Source.class, request.getSourceId());

            if (source != null) {
                System.out.println("=====================================");
                System.out.println("source id " + source.getName());
                track.setRouteSourceId(source);
            } else {
                response.setMessage("source type id does not exist");
                response.setResponseCode(1);
                return response;
            }
        }
        //***************Create track record****************************
        em.getTransaction().begin();

        if (request.getName() != null) {
            track.setName(request.getName());
        } else {
            track.setName("");
        }

        track.setDescription(request.getDescription());
        if (request.getPicture() != null) {
            track.setPicture(request.getPicture());
        }
        track.setDistance(request.getDistance());
        track.setDuration(request.getDuration());

        track.setSpeed(request.getSpeed());
        track.setElevation(request.getElevation());

        if (request.getTrackFileCsv() != null) {

            //                String csvFile = new String(request.getTrackFileCsv());
            trackFileCsv = Base64.encodeBase64(request.getTrackFileCsv());
            track.setTrackFileCsv(trackFileCsv);
        }

        track.setRouteKlm(request.getRoute_kml());
        track.setLatStart(request.getLat_start());
        track.setLongStart(request.getLon_start());
        track.setLatEnd(request.getLat_end());
        track.setLongEnd(request.getLon_end());
        track.setCreationDate(new Date());
        track.setDatetimeStart(request.getDatetime_start());
        track.setDatetimeEnd(request.getDatetime_end());
        track.setUserId(users);
        track.setIsPublic(request.isIs_public());
        track.setStartAddress(request.getStart_address());
        track.setEndAddress(request.getEnd_address());

        if (request.getTrackRatings().size() > 0) {

            OtnServiceTrackResponse rate_response = checkTrackRateAndType(request.getTrackRatings());

            if (rate_response.getResponseCode() == 0) {
                em.persist(track);
                em.flush();
                em.getTransaction().commit();
                em.clear();

                for (OtnServicePoiRatings trackRatingList : request.getTrackRatings()) {
                    em.getTransaction().begin();
                    track_rating = new TrackRating();
                    track_rating_type = em.find(TrackRatingType.class, trackRatingList.getRatingTypeId());
                    track_rating.setTrackId(track);
                    track_rating.setTrackRatingTypeId(track_rating_type);
                    track_rating.setRate(trackRatingList.getRate());
                    track_rating.setUserId(users);

                    em.persist(track_rating);
                    em.flush();
                    em.getTransaction().commit();
                    em.clear();

                    response.setMessage("success");
                    response.setResponseCode(0);

                }

            } else {

                response.setMessage(rate_response.getMessage());
                response.setResponseCode(rate_response.getResponseCode());
                return response;
            }

        } else {
            em.persist(track);
            em.flush();
            em.getTransaction().commit();
            em.clear();

            response.setMessage("success");
            response.setResponseCode(0);

        }

        //***********************find weatherID******************************
        if (request.getWeatherList().size() > 0) {

            if (track.getTrackId() == 0) {
                em.persist(track);
                em.flush();
                em.getTransaction().commit();
                em.clear();
            }
            weatherListparams = new ArrayList<OtnServiceWeatherRatings>();
            for (OtnServiceWeatherRatings weatherList : request.getWeatherList()) {
                em.getTransaction().begin();

                weather = new Weather();
                weather_type = em.find(WeatherType.class, weatherList.getWeatherTypeId());

                if (weather_type == null) {
                    response.setMessage("weather id  does not exist");
                    response.setResponseCode(1);
                    return response;

                }

                weather.setTrackId(track);
                weather.setWeatherTypeId(weather_type);

                em.persist(weather);
                em.flush();
                em.getTransaction().commit();
                em.clear();

                response.setMessage("success");
                response.setResponseCode(0);

                weatherListparams.add(new OtnServiceWeatherRatings(weather_type.getWeatherId()));

            }
            response.setWeatherList(weatherListparams);

        }

        //***********************insert geometry points******************************
        // insert startPoint
        List<OtnServiceGeometryPoints> startPointsList = new ArrayList<OtnServiceGeometryPoints>();
        OtnServiceGeometryPoints startPoints = new OtnServiceGeometryPoints();
        startPoints.setLatitude(request.getLat_start());
        startPoints.setLongitude(request.getLon_start());
        startPointsList.add(startPoints);

        // insert endPoint
        List<OtnServiceGeometryPoints> endPointsList = new ArrayList<OtnServiceGeometryPoints>();
        OtnServiceGeometryPoints endPoints = new OtnServiceGeometryPoints();
        endPoints.setLatitude(request.getLat_end());
        endPoints.setLongitude(request.getLon_end());
        endPointsList.add(endPoints);

        /**
         * decode csv String
         */
        if (request.getTrackFileCsv() != null) {
            String trackFilecsvDecode = new String(request.getTrackFileCsv());
            /**
             * write file to folder
             */
            String urlfile = Base_url + System.currentTimeMillis() + ".csv";
            BufferedWriter writer = new BufferedWriter(new FileWriter(urlfile));
            writer.append(trackFilecsvDecode);
            writer.close();

            //            System.out.println("csv " + trackFilecsvDecode);
            // set delimeter
            CSVFormat format = CSVFormat.newFormat(';').withHeader();
            //parse csv format String
            //                log.info("1 ");
            CSVParser parser = new CSVParser(new StringReader(trackFilecsvDecode), format);

            List<OtnServiceGeometryPoints> geomPoints = new ArrayList<OtnServiceGeometryPoints>();
            //parse records (in the example 2 records)

            List timestamp = new ArrayList<String>();
            for (CSVRecord record : parser) {
                timestamp.add(record.get("Timestamp"));
                //                    System.out.println("latitude " + record.get("Latitude"));
                //                    System.out.println("Longitude " + record.get("Longitude"));
                //                    System.out.println("Timestamp " + record.get("Timestamp"));
                //                    log.info("2");
                geomPoints.add(new OtnServiceGeometryPoints(Double.parseDouble(record.get("Latitude")),
                        Double.parseDouble(record.get("Longitude"))));
            }
            //            System.out.println("number " + total_records);
            //                System.out.println("first  time" + timestamp.get(0));
            //                System.out.println("end  time" + timestamp.get(timestamp.size() - 1));
            String start_date = timestamp.get(0).toString();
            String end_date = timestamp.get(timestamp.size() - 1).toString();

            parser.close();
            //                log.info("3");
            //            if (request.getGeometryPoints() != null) {
            //                geomPoints = request.getGeometryPoints();
            //
            //            }
            insertGeometryPoints(track.getTrackId(), geomPoints, startPointsList, endPointsList, start_date,
                    end_date, urlfile);
        }
        response.setName(track.getName());
        response.setTrackId(track.getTrackId());
        response.setDescription(track.getDescription());
        response.setDistance(track.getDistance());
        response.setDuration(track.getDuration());
        if (transport_type != null) {
            response.setTransportName(transport_type.getName());
        }

        response.setSpeed(track.getSpeed());
        response.setElevation(track.getElevation());
        response.setLat_start(track.getLatStart());
        response.setLon_start(track.getLongStart());
        response.setLat_end(track.getLatEnd());
        response.setLon_end(track.getLongEnd());
        response.setDatetime_start(track.getDatetimeStart());
        response.setDatetime_end(track.getDatetimeEnd());
        response.setUserId(users.getUserId());
        response.setIs_public(track.getIsPublic());
        response.setRoute_kml(track.getRouteKlm());
        response.setTrackFileCsv(Base64.decodeBase64(track.getTrackFileCsv()));

        if (app != null) {
            response.setAppName(app.getName());
        }
        response.setStart_address(track.getStartAddress());
        response.setEnd_address(track.getEndAddress());
        //            if (weather != null) {
        //                response.setWeatherCondition(weather.getCondition());
        //            }
        if (source != null) {
            response.setSourceName(source.getName());
        }
        return response;
        //            }

    } catch (Exception e) {
        e.printStackTrace();

        response.setMessage("failure");
        response.setResponseCode(2);

    } finally {

        return response;
    }

}