public void reloadData() {
		// read node info
		try (BufferedReader br = new BufferedReader(new FileReader(
				"mapinfo.txt"))) {
			mapString = new StringBuffer("");
			neighborhoodString = new StringBuffer("");
			this.mapInfo.clear();
			String sCurrentLine;
			while ((sCurrentLine = br.readLine()) != null) {
				System.out.println(sCurrentLine);
				String[] lineContent = sCurrentLine.split(" ");
				String name = lineContent[0];
				double x = Double.parseDouble(lineContent[1]);
				double y = Double.parseDouble(lineContent[2]);
				Node node = new Node(x, y, name);
				mapInfo.add(node);
				mapString.append(sCurrentLine+"\n");
			}

			for (int i = 0; i < mapInfo.size(); i++) {
				Node nodei = mapInfo.get(i);
				for (int j = 0; j < mapInfo.size(); j++) {
					Node nodej = mapInfo.get(j);
					System.out.print(nodei.getLocation().distance(
							nodej.getLocation())
							+ " ");
				}
				System.out.println("");
			}

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

		// read neighborhood
		try (BufferedReader br = new BufferedReader(new FileReader(
				"neighborhood.txt"))) {
			String sCurrentLine;
			int i = 0;
			while ((sCurrentLine = br.readLine()) != null) {
				System.out.println(sCurrentLine);
				String[] lineContent = sCurrentLine.split(" ");
				Node curNode1 = mapInfo.get(i);
				for (int j = 0; j < lineContent.length; j++) {
					String s = lineContent[j];
					if (!s.equalsIgnoreCase("0")&&!s.equalsIgnoreCase("-1")) {
						Neighborhood neighborhood = new Neighborhood();
						neighborhood.setId(j);
						neighborhood.setLength(Double.parseDouble(s));
						curNode1.addNeighborhood(neighborhood);
					}
				}
				mapInfo.set(i, curNode1);
				i++;
				neighborhoodString.append(sCurrentLine+"\n");
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("load done");
	}