2016-03-03 88 views
0

說我有這個數據文件。我試圖繪製一張地圖,其中節點是連接兩條道路的交叉點,並在兩條道路之間繪製道路。 coords中的前兩個數字是nodeID1的緯度/經度,最後兩個(右下角)是nodeID2的緯度/經度。中間的兩條座標線就是公路改變方向的地方,就像道路幾乎彎曲的地方一樣。有時候,正如你所知道的,道路有不止一條曲線或者像方向(有風的道路),所以我會爲這兩個節點之間的那些路段設置更多的座標。我想知道如何讀取節點之間的座標,並將它們作爲「路段」/「彎曲點」存儲在集合中?我會如何用緩衝reade去解決這個問題?讀取一個文件並將兩個數字之間的數字讀取爲特定的東西

BufferedReader data = new BufferedReader(new FileReader(roadFile));

roadID length    nodeID1 nodeID2 coords 
17134 0.22322055914578026 12420 12556 -36.88853 174.72218 -36.88954     
               174.72361 -36.88992 174.72398 

回答

1

使用BufferedReader打開roadFile後,您可以通過解析使用BufferedReaderreadLine()法線的輸入線。每行都以String的形式返回。然後,您可以使用StringTokenizer根據分隔符(例如,選項卡\t或空白字符)將String拆分爲多個部分。這裏有一些示例代碼:

 try(BufferedReader data = new BufferedReader(new FileReader(roadFile));) { 
      String line = null; 
      String delim = "\t"; 
      while((line = br.readLine()) != null){ 
       StringTokenizer tok = new StringTokenizer(line, delim); 
       while(tok.hasMoreTokens()){ 
        String nextToken = tok.nextToken(); 
        //do stuff with the nextToken String 
       } 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+1

哦好吧謝謝奧斯汀,這是有道理的。我只需要閱讀解析。感謝這個例子,它幫助我學習這一點! @奧斯汀D. –

相關問題