假设我有这个数据文件。我正在尝试绘制一张 map ,其中节点作为交叉点,连接两条道路并在它们之间绘制一条道路。 coords 中的前两个数字是 nodeID1 的纬度/经度,最后两个数字(右下角)是 nodeID2 的纬度/经度。中间的两个坐标是道路改变方向的地方,就像道路弯曲的点一样。有时,如您所知,道路有多个弯道或类似的方向(有风的道路),因此对于两个节点之间的路段,我会有更多的坐标。我想知道如何读取节点之间的坐标并将它们存储在集合中作为“路段”/“弯曲点”等?我该如何通过缓冲读取来解决这个问题?
BufferedReader 数据 = 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
最佳答案
使用 BufferedReader
打开 roadFile
后,您可以使用 BufferedReader
的 readLine( )
方法。每行都以 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();
}
关于java - 读取文件并读取两个数字之间的数字是确定的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35765907/