public void load(String nodeFile, String edgeFile) throws IOException {
        /* Nodes. */
        BufferedReader br;
        br = new BufferedReader(new FileReader(nodeFile));
        br.readLine(); // First line is column names, not data.

        String line;
        while ((line = br.readLine()) != null) {
            NodeData nd = new NodeData(line);

            if (nd.getX_COORD() > xmax) {
                xmax = nd.getX_COORD();
            }
            if (xmin == 0 || nd.getX_COORD() < xmin) {
                xmin = nd.getX_COORD();
            }
            if (nd.getY_COORD() > ymax) {
                ymax = nd.getY_COORD();
            }
            if (ymin == 0 || nd.getY_COORD() < ymin) {
                ymin = nd.getY_COORD();
            }

            processNode(nd);

        }
        br.close();

        /* Edges. */
        br = new BufferedReader(new FileReader(edgeFile));
        br.readLine(); // Again, first line is column names, not data.

        while ((line = br.readLine()) != null) {
            processEdge(new EdgeData(line));

        }
        br.close();

        DataLine.resetInterner();
        System.gc();
    }