用到io输入输出流的使用

在项目中新建文本文件“a.txt”,并输入若干个整数,每个数字以空格分隔,然后保存。用java编写一段程序,将“a.txt”中整数输出,并按大小降序排列后,以相同的格式写入另一文本文件“b.txt”

img

public class AToB {
    public static void main(String[] args) throws IOException {
        //创建字符缓冲输入流对象
        BufferedReader br=new BufferedReader(new FileReader("a.txt"));
        //创建字符缓冲输出流对象
        BufferedWriter bw=new BufferedWriter(new FileWriter("b.txt"));
        //读写数据,使用字符缓冲流特有功能readLine()
        String line;
        while ((line=br.readLine())!=null){
            //将得到的line字符串用空格分隔存入一个String数组里
            String[] s=line.split(" ");
            //定义一个数组,把String[]数组中的每一个元素存储到int数组中
            Integer[] arr=new Integer[s.length];
            for(int i=0;i<arr.length;i++){
                arr[i]=Integer.parseInt(s[i]);
            }
            //按降序排列
            //public static <T> Comparator<T> reverseOrder​()返回一个对实现Comparable接口的对象集合的自然排序相反的比较器
            Arrays.sort(arr, Collections.reverseOrder());
            //对Integer数组进行拼接成字符串
            StringBuilder sb=new StringBuilder();
            for (Integer integer:arr){
                sb.append(integer).append(" ");
            }
            //将StringBuilder类型转换成String
            String result=sb.toString();
            //写入b.txt
            bw.write(result);
            //刷新
            bw.flush();
        }

        //释放资源
        bw.close();
        br.close();
    }
}

运行结果:

img

img