A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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换另一个位置就可以实现结果

2 个回复

倒序浏览
lz粗心了,在执行 BufferedWriter  bw = new BufferedWriter(new FileWriter("demo.txt"));代码的时候,程序会查找有没有demo.txt这个文件,如果没有就创建,如果有就将其覆盖,这是最JAVA/IO基础的知识!!
楼主将目的文件该为其他路劲就可以了。
回复 使用道具 举报
Lin0411 发表于 2014-6-27 21:24
lz粗心了,在执行 BufferedWriter  bw = new BufferedWriter(new FileWriter("demo.txt"));代码的时候,程 ...

明白了.原来是这样,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马