CSV парсер

 avatar
unknown
java
a year ago
2.2 kB
7
Indexable
public CollectionHandler() throws Exception {
        //Loading file and storing information in string
        // Code for loading and parsing the collection from a file

        if(pathToCollection == null){
            System.out.println("There is no environment variable with collection file path");
            return;
        }

        File file = FileHandler.process(pathToCollection);

        if (file != null) {
            FileInputStream fis;
            try {
                 fis = new FileInputStream(pathToCollection);
            } catch (Exception e) {
                System.out.println("Access is denied or file doesn't exist");
                return;
            }
            InputStreamReader isr = new InputStreamReader(fis);
            String csv = "";
            int data = isr.read();

            while (data != -1) {
                csv += (char) data;
                data = isr.read();
            }
            fis.close();
            isr.close();

            var i = 0;

            for (String line: csv.split("(\\r\\n|\\r|\\n)")) {
                if (i == 0) {
                    i++;
                    continue;
                }
                var results = new ArrayList<String>();
                Matcher m = Pattern.compile("(?:^|,)(\\\"(?:[^\\\"]+\\\"\\\"|[^\\\"])*\\\")|([^,\\r\\n]*)").matcher(line);

                while (m.find()) {
                    var s = m.group();
                    if (s.trim() == "") {
                        continue;
                    }
                    if (s.startsWith(",")) {
                        s = s.substring(1);
                    }
                    results.add(s);
                }

                if (results.isEmpty()) {
                    continue;
                }

                try {
                    // TODO put(parsed_key, route)
                    this.collection.put(Integer.parseInt(results.get(0)), new Route(results));
                } catch (Exception e) {
                    System.out.println(e.getMessage());
                    System.out.println("Skipping this Route...");
                }
            }
        }
    }
Editor is loading...
Leave a Comment