private static void readLinkFile(boolean isHighway) { System.out.println("read link file..."); int debug = 0; try { FileInputStream fstream = new FileInputStream(root + "/" + (isHighway ? highwayLinkFile : arterialLinkFile)); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { debug++; String[] nodes = strLine.split(";"); int linkId = Integer.parseInt(nodes[0]); String allDir = nodes[1]; String streetName = nodes[2]; int funcClass = Integer.parseInt(nodes[3]); ArrayList<PairInfo> nodeList = getPairListFromStr(nodes[4]); int speedCat = Integer.parseInt(nodes[5]); String dirTravel = nodes[6]; int startNode = Integer.parseInt(nodes[7]); int endNode = Integer.parseInt(nodes[8]); LinkInfo linkInfo = new LinkInfo( linkId, funcClass, streetName, startNode, endNode, nodeList, dirTravel, speedCat, allDir); if (isHighway) highwayLinkList.add(linkInfo); else arterialLinkList.add(linkInfo); if (debug % 100000 == 0) System.out.println("record " + debug + " finish!"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); System.err.println("Error Code: " + debug); } System.out.println("read link file finish!"); }
private static ArrayList<PairInfo> getPairListFromStr(String str) { String[] nodes = str.split(":"); ArrayList<PairInfo> pairList = new ArrayList<PairInfo>(); for (int i = 0; i < nodes.length; i++) { PairInfo pair = getPairFromStr(nodes[i]); pairList.add(pair); } return pairList; }