文件file1.txt的内容如下:
id:1 neighbor:3,4 id:6 neighbor:8
id:1 neighbor:3,4,5 id:6 neighbor:8,9
如果这一行的id相同的话,我想只保留neighbor数量多的那个,同时把多余的空行也去掉,也就是将文件内容变成:
id:1 neighbor:3,4,5
id:6 neighbor:8,9
或者将所得到的有用纪录存入另外一个新文件file2.txt,该如何做?
id:1 neighbor:3,4 id:6 neighbor:8
id:1 neighbor:3,4,5 id:6 neighbor:8,9
如果这一行的id相同的话,我想只保留neighbor数量多的那个,同时把多余的空行也去掉,也就是将文件内容变成:
id:1 neighbor:3,4,5
id:6 neighbor:8,9
或者将所得到的有用纪录存入另外一个新文件file2.txt,该如何做?
定一个HashMap<key,TreeSet>
id作为key
如果id相同的话,就放在set中,顺便把重复的也给去掉啦
{
Map map = new HashMap();
try
{
FileReader fr = new FileReader(file_nodeinfo);
BufferedReader br = new BufferedReader(fr);
FileWriter writer = new FileWriter("C:\\file2.txt");
BufferedWriter bw = new BufferedWriter(writer);
String Line = br.readLine();
while(Line!=null)
{
String self_id = Line.substring(Line.indexOf("s")+8,Line.lastIndexOf("f")-4);
String neighbor_info = Line.substring(Line.lastIndexOf(":")+1,Line.length());
Iterator it = map.keySet().iterator();
while(it.hasNext())
{
Object key = it.next();
if( key == self_id && (map.get(key).toString().length() < neighbor_info.length()))
{
map.put(self_id,neighbor_info);
String Line1 = Line;
bw.write(Line1);
}
}
map.put(self_id,neighbor_info);
bw.write(Line);
Line = br.readLine();
}
br.close();
fr.close();
writer.close();
bw.close();
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
return 0;
}