首先观察gml文件的存储格式
Creator "Mark Newman on Wed Jul 26 15:04:20 2006"
graph
[
directed 0
node
[
id 0
label "Beak"
]
node
[
id 1
label "Beescratch"
]
edge
[
source 61
target 37
]
edge
[
source 61
target 53
]
]
可以看出存储格式graph表示一个图,然后 [ ] 用来 指定图中的元素
node指定一个节点,并且[]中说明该节点的id属性和label属性
edge一样,有一个起点和终点的id。
于是用java按行读取,删除开头和末尾的空格,再用split函数按空格分成字符串
如果第一个字符串是id,那么读取下一行,这样就有了id值和label值,此时便获取了节点信息了。
当然没有删除 “” 符号,这个可以进一步处理
边也是这样处理的,对于字符串转整数,直接调用函数即可。
package biger;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Ma