读取一个文件并在两个数字之间读取数字是某件事

Read a file and have numbers in between two numbers read be a certain thing

说我有这个数据文件。我正在尝试绘制一张地图,其中节点作为连接两条道路的交叉点,并在它们之间绘制一条道路。 coords 中的前两个数字是 nodeID1 的 lat/lon,最后两个(右下)是 nodeID2 的。中间的两个坐标是道路改变方向的地方,就像道路弯曲的点一样。有时,如您所知,道路有不止一条曲线或类似的方向(多风的道路),因此我会为两个节点之间的路段提供更多坐标。我想知道如何读取节点之间的坐标并将它们存储在集合中,如 "road segments"/"curving points" 等?我将如何使用缓冲读取来解决这个问题?

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 后,您可以使用 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();
        }