public void init() throws IOException {

        graph = new DirectedGraph<Integer>();
        reversedGraph = new DirectedGraph<Integer>();
        ZipFile zipFile = new ZipFile(getClass().getResource("/SCC.zip").getPath());
        Scanner scanner = new Scanner(zipFile.getInputStream(zipFile.getEntry("SCC.txt")));
        int i = 0;
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            String[] split = line.split(" ");

            Vertex<Integer> source = new Vertex<Integer>(Integer.valueOf(split[0]));
            Vertex<Integer> dest = new Vertex<Integer>(Integer.valueOf(split[1]));

            graph.addVertex(source);
            graph.addVertex(dest);

            if (!graph.isEdge(source, dest)) {
                graph.addEdge(source, dest);
            }
            source = new Vertex<Integer>(Integer.valueOf(split[0]));
            dest = new Vertex<Integer>(Integer.valueOf(split[1]));

            reversedGraph.addVertex(source);
            reversedGraph.addVertex(dest);

            if (!reversedGraph.isEdge(dest, source)) {
                reversedGraph.addEdge(dest, source);
            }

            if (i % 100000 == 0) {
                System.out.println("Lines loaded " + i);
            }
            i++;

        }

        System.out.println("Graph loaded " + graph.getVertices().size() +" vertices");
        System.out.println("Graph loaded " + i +" edges");
        scanner.close();

    }