黑马程序员技术交流社区

标题: IO、集合综合笔试题 [打印本页]

作者: 姚成晖    时间: 2016-2-16 15:48
标题: IO、集合综合笔试题
键盘录入五个数,进行排序后 写入一个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. }
复制代码

作者: liuxiaoye    时间: 2016-2-16 21:31
这个题知识点还挺全面,学习了
作者: fagug    时间: 2016-2-16 22:01
这个好,一个程序把IO流和集合排序都归纳了。。。。。。
作者: 洋葱头头    时间: 2016-2-16 23:22
不如我的题目啊
作者: 姚成晖    时间: 2016-2-16 23:30
洋葱头头 发表于 2016-2-16 23:22
不如我的题目啊

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

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

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








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2