java - 读取文件并读取两个数字之间的数字是确定的事情

标签 java graph maps bufferedreader

假设我有这个数据文件。我正在尝试绘制一张 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 后,您可以使用 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();
        }

关于java - 读取文件并读取两个数字之间的数字是确定的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35765907/

相关文章:

java - AssertJ:从提取列表中检索第一项返回列表

java - 教哪个构建工具?

javascript - 设置 AngularJS 范围标签的值

python - 读取二部图

excel - Excel 中的 map : How can you highlight a geographic area by selecting its name from a dropdown menu?

iphone - iPhone 上的自定义光栅/矢量 map

java - CSS 代码仅适用于 Netbeans,不适用于网络浏览器

java - 需要帮助查找错误

git - git 如何处理 merge 中的提交?

c++ - 在 C++ 中为 map 自动生成键