第2个回答 2014-01-21
import java.io.*;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class fileRead { /**
* @param args
* @author lgq
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String data = null;
List<Map.Entry<Integer, String>> list = new
ArrayList<Map.Entry<Integer, String>>(); //保存单词list
int count = 0;
try
{
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream("d:\\test.txt")));
while((data = br.readLine())!=null)
{
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(count, data);
list.addAll(map.entrySet());
System.out.println("head "+data);
count++;
}
}catch(IOException ioe)
{
ioe.printStackTrace();
}
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>()
{
public int compare(Map.Entry<Integer, String> o1,
Map.Entry<Integer, String> o2) {
// TODO Auto-generated method stub
//return (o2.getValue() - o1.getValue());
//return (o1.getKey()).toString().compareTo(o2.getKey().toString());
return(o1.getValue().compareTo(o2.getValue()));
}
});
//写入 文本
try
{
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("d:\\test.txt"));
for(int i=0;i<list.size();i++)
{
writer.write(list.get(i).toString());
writer.flush();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("d:\\test.txt")),true); pw.println(list.get(i).toString());
}
writer.close();
}catch(IOException io)
{
io.printStackTrace();
}
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i).toString());
}
}}
好了 试下 你,抽了 几个工作时,呵呵,,希望帮到你~~~~