[code="java"]package demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
//读取文件内容如下:
//乔巴 6
//娜美 4
//香吉士 5
//路飞 1
//按数字顺序从大到小 将每行信息重新排列后在写入另一个文件中
public class Demo5 {
public static void main(String[] args) {
File file1 = new File("D:/mydir/haizei.txt");
File file2 = new File("D:/mydir/haizei1.txt");
List<Member> mem = new ArrayList<Member>();
BufferedReader br=null;
String s;
try{
br=new BufferedReader(new FileReader(file1));
while((s=br.readLine())!=null) {
Member m =new Member();
String[] a=s.split(" ");
m.name=a[0];
m.i=Integer.parseInt(a[1]);
mem.add(m);
}
br.close();
for(int k=0;k<mem.size();k++){
for(int j=k+1;j<mem.size();j++){
if(!mem.get(k).compare(mem.get(j))){
Member temp=new Member();
temp.i=mem.get(k).i ;
temp.name =mem.get(k).name;
mem.set(k, mem.get(j));
mem.set(j, temp);
}
}
}
BufferedWriter bw=new BufferedWriter(new FileWriter(file2));
for(int k=0;k<mem.size();k++) {
bw.write(mem.get(k).name+" "+mem.get(k).i);
bw.newLine();
}
bw.flush();
}catch(IOException e) {
e.printStackTrace();
}
}
}
class Member{
int i;
String name;
public boolean compare(Member m) {
if(this.i<m.i){
return true;
}else return false;
}
}
看到一道题目自己编程实现了一下。不知这样写好不好。