修改了  楼主犯了个低级错误:import java.io.*;
import java.util.*;public class FileString 
{
public static void main(String[] args) throws Exception
{
File f = new File("f.txt");
BufferedReader br=new BufferedReader(new FileReader(f)); String entry=null;
Map map=new HashMap(); while((entry=br.readLine())!=null)
{
StringTokenizer st = new StringTokenizer(entry," ;");
String var=st.nextToken().trim();
String type=st.nextToken().trim();
Entry e=new Entry(type,var);
if(map.containsValue(e))
{
Entry en=(Entry)map.get(e);
en.vars.add(var);
}
else
{
map.put(e,e);
}
}
br.close();
BufferedWriter bw=new BufferedWriter(new FileWriter("new.txt"));
Iterator i=map.keySet().iterator();
    System.out.println("Can  execute This !!!");
while(i.hasNext())
{
try
{
bw.write(i.next().toString());
bw.newLine();
}
catch(ArrayIndexOutOfBoundsException ee)
{
System.out.println("Errors ocurrs Entry :" + ee.getMessage());
}
}
/*
for(Iterator i=map.keySet().iterator();i.hasNext();)
{
bw.write(i.next().toString());
bw.newLine();
}
*/
bw.close();
}
static class Entry
{
Entry(String type,String var)
{
this.type=type;
vars.add(var);
}
String type;
List vars=new ArrayList(); public boolean equals(Object o)
{
return ((Entry)o).type.equals(type);
}
public String toString()
{
StringBuffer sb = new StringBuffer(type);
sb.append(' ');
for(int i=1;i<vars.size();i++)
{
sb.append((String)vars.get(i-1));
sb.append(',');
}
sb.setCharAt(sb.length()-1,';');
return sb.toString();
}
public int hashCode()
{
return type.hashCode();
}
}; }