黑马程序员技术交流社区
标题:
IO、集合综合笔试题
[打印本页]
作者:
姚成晖
时间:
2016-2-16 15:48
标题:
IO、集合综合笔试题
键盘录入五个数,进行排序后 写入一个txt文件中, 然后在从txt文件读取到控制台输出。
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Demo {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
TreeSet<String> ts = new TreeSet<>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
int num = o1.compareTo(o2);
return num==0?1:num;
}
});
System.out.println("请输入五个数");
while(ts.size()<5){
String s = sc.nextLine();
ts.add(s);
}
FileOutputStream fos = new FileOutputStream("a.txt");
for(String i:ts){
fos.write(i.getBytes());
fos.write("\r\n".getBytes());
}
fos.close();
System.out.println("写入完毕");
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
String len;
while((len=br.readLine())!=null){
System.out.println(len);
}
br.close();
}
}
复制代码
作者:
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