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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廉伟 中级黑马   /  2012-8-12 18:26  /  1363 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。

点评

哥们!你悠着点哦!  发表于 2012-8-12 21:22

1 个回复

倒序浏览
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Comparator;
import java.util.TreeSet;
import java.util.Set;
public class Test {
/**
  * 已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。
  * 即b.txt中的文件内容应为“abcd…………..”这样的顺序。
  * @throws IOException
  */
/*创建一个带缓冲的输入流对象,读取a.txt的内容
  * 创建一个Set对象存储读取出的文件
  *定义一个比较器对Set里的内容进行排序
  *遍历Set将内容写入到b.txt中
  */
public static void main(String[] args) throws IOException {
  Set<Integer> set = new TreeSet<Integer>(new MyComparator());
  BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));
  int b;
  while((b = bis.read()) != -1)
   set.add(b);
  bis.close();
  BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt"));
  for (Integer i : set) {
   bos.write(i);
  }
  bos.close();
  
}
}
class MyComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
  int x = o1 - o2;
  return x != 0 ? x : 1;
}

}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马