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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚成晖 中级黑马   /  2016-2-16 15:48  /  1014 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

键盘录入五个数,进行排序后 写入一个txt文件中, 然后在从txt文件读取到控制台输出。

  1. import java.io.BufferedReader;
  2. import java.io.FileOutputStream;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.util.Comparator;
  6. import java.util.Scanner;
  7. import java.util.TreeSet;

  8. public class Demo {
  9.         public static void main(String[] args) throws IOException {
  10.                 Scanner sc = new Scanner(System.in);
  11.                 TreeSet<String> ts = new TreeSet<>(new Comparator<String>(){
  12.                         @Override
  13.                         public int compare(String o1, String o2) {
  14.                                 int num = o1.compareTo(o2);
  15.                                 return num==0?1:num;
  16.                         }
  17.                        
  18.                 });
  19.                 System.out.println("请输入五个数");
  20.                 while(ts.size()<5){
  21.                         String s = sc.nextLine();
  22.                         ts.add(s);
  23.                 }
  24.                
  25.                 FileOutputStream fos = new FileOutputStream("a.txt");
  26.                 for(String i:ts){
  27.                         fos.write(i.getBytes());
  28.                         fos.write("\r\n".getBytes());
  29.                 }
  30.                 fos.close();
  31.                 System.out.println("写入完毕");
  32.                
  33.                 BufferedReader br = new BufferedReader(new FileReader("a.txt"));
  34.                 String len;
  35.                 while((len=br.readLine())!=null){
  36.                         System.out.println(len);
  37.                 }
  38.                 br.close();
  39.         }
  40. }
复制代码

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

7 个回复

倒序浏览
这个题知识点还挺全面,学习了
回复 使用道具 举报
这个好,一个程序把IO流和集合排序都归纳了。。。。。。
回复 使用道具 举报
不如我的题目啊
回复 使用道具 举报

那是 能跟你比么{:2_34:} 嘿嘿,  朋友面试遇到的题 顺便就发上来了
回复 使用道具 举报
如果以相反的顺序读取到控制 最后的代码该如何写啊
回复 使用道具 举报
已复制,貌似很高大上
回复 使用道具 举报
本帖最后由 姚成晖 于 2016-2-17 00:25 编辑
tujiu888 发表于 2016-2-16 23:41
如果以相反的顺序读取到控制 最后的代码该如何写啊

方法很多啊  看你怎么分析的了比如第一种方法(如果是多行数据,行与行的反转的情况):
                  用BufferedReader的readLine()方法一行一行读取,读取完存到ArrayList中
                   将集合中的元素倒着遍历,输出到控制台
                  (每个字符都要反转的情况)
                  read一个字符一个字符的读  存到ArrayList中
                  将集合中的元素倒着遍历,输出到控制台
            

第二种方法(单行数据  每个字母都要反转):
                   用内存输出流ByteArrayOutputStream先全读到内存,
                   然后用toString()方法一次性获取到内存中的所有数据
                   在利用StringBuffer包装一下   reverse反转就OK啊



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