package cn.itcast_01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeSet;
/*
* 7、 把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249
*/
public class Test7 {
public static void main(String[] args) throws IOException {
// 数据源
BufferedReader br = new BufferedReader(new FileReader("demo.txt"));
// 目的地
BufferedWriter bw = new BufferedWriter(new FileWriter("demo.txt"));
//创建一个集合对象存储读入的数据
TreeSet<String> ts = new TreeSet<String>(new Comparator<String>() {
//比较两个ip的大小
public int compare(String s1, String s2) {
String[] strs1 = s1.split("\\.");
String[] strs2 = s2.split("\\.");
ArrayList<Integer> al = new ArrayList<Integer>();
for(int i = 0;i < strs1.length;i++) {
int num1 = Integer.valueOf(strs1[i]);
int num2 = Integer.valueOf(strs2[i]);
al.add(num1 - num2);//ip相同段的大小
}
//比较两个ip的大小
int num = al.get(0);
int num2 = ( num == 0) ? al.get(1) : num ; // 0
int num3 = (num2 == 0) ? al.get(2) : num2; // 0
int num4 = (num3 == 0 ) ? al.get(3) : num3;//0
System.out.println(num4);
return num4;
}
});
//读取数据存入集合
String line =null;
while( (line = br.readLine()) != null){
ts.add(line);
}
System.out.println(ts);
System.out.println("==================");
for(String s : ts){
//将数据写入到目的地
bw.write(s);
bw.newLine();
bw.flush();
}
//释放资源
br.close();
bw.close();
}
}
结果为什么为空,如果将BufferedWriter换另一个位置就可以实现结果
|
|