weixin_45594779 2019-11-27 10:29 采纳率: 90.9%
浏览 214
已采纳

关于JAVA File的问题!跪求大神教我,顺便解释那个代码的意思

图片说明

  • 写回答

2条回答 默认 最新

  • renkai721 2019-11-27 11:30
    关注

    以下是代码片段,你可以参考下

    package test;
    
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    
    public class JavaIo {
        // Write a program to create a file named integerFile.txt if it does not exists. Write 100
        // integers
        // created randomly into the file using text I/O. The random integers should be in the range 0
        // to
        // 100(including 0 and 100). Integers should be separated by spaces in the file. Read the data
        // back from the file and display the data in increasing order.
        // 解题:用java IO流创建一个integerFile.txt的文本文件,如果这个文件不存在要创建它。文件内容要写入100个随机数,
        // 随机数的范围在0到100,包含0和100。然后读取文件,按照升序展示这个数据
        public static void main(String[] args) {
            // 文件全路径
            String fileName = "d:\\integerFile.txt";
            try {
                File file = new File(fileName);
                // 文件存在删除它,创建新的
                file.deleteOnExit();
                if (!file.exists()) {
                    // 创建文件
                    file.createNewFile();
                }
                // 100个空格分隔的随机数
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < 100; i++) {
                    int number = (int) (Math.random() * 101);
                    sb.append(number + " ");
                }
                FileWriter fw = new FileWriter(file);
                System.out.println("写入的数据="+sb.toString());
                // 写数据
                fw.write(sb.toString());
                // 刷新缓存区
                fw.flush();
                // 关闭文件流
                fw.close();
                System.out.println("写入文件成功。。。");
                // 读取文件
                System.out.println("读取的数据");
                FileReader fr = new FileReader(file);
                char[] buf = new char[(int) file.length()];
                int len;
                StringBuffer readSb = new StringBuffer();
                while ((len = fr.read(buf)) != -1) {
                    readSb.append(new String(buf, 0, len));
                }
                fr.close();
                // 冒泡排序算法
                String[] numbers = readSb.toString().split(" ");
                int i, j;
                for (i = 0; i < numbers.length; i++) {
                    for (j = 0; j < numbers.length - 1 - i; j++) {
                        // 按照升序排列
                        if (Integer.parseInt(numbers[j]) > Integer.parseInt(numbers[j + 1])) {
                            String temp = numbers[j];
                            numbers[j] = numbers[j + 1];
                            numbers[j + 1] = temp;
                        }
                    }
                }
                // 展示数据
                for (int a = 0; a < numbers.length; a++) {
                    System.out.print(numbers[a]+" ");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置