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 能给我一些人生建议吗
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥30 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
  • ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
  • ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
  • ¥15 R语言shiny包和ncdf4包报错
  • ¥15 origin绘制有显著差异的柱状图和聚类热图
  • ¥20 simulink实现滑模控制和pid控制对比,提现前者优势