qq_38692022 2018-12-16 05:16 采纳率: 70%
浏览 2383
已结题

java语言写 在文件a中有10个整数按从小到大的顺序排列,在其中插入一个整数,插入后数据仍然有序?

在文件a中有10个整数按从小到大的顺序排列,在其中插入一个整数,插入后数据仍然有序
用java写 求个代码

  • 写回答

4条回答 默认 最新

  • threenewbee 2018-12-16 05:38
    关注
    import java.io.File;  
    import java.io.InputStreamReader;  
    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.FileInputStream;  
    import java.io.FileWriter;  
    
    public class cin_txt {  
        static void main(String args[]) {  
            try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  
    
                /* 读入TXT文件 */  
                String pathname = "D:\\你的路径\\1.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  
                File filename = new File(pathname); // 要读取以上路径的input。txt文件  
                InputStreamReader reader = new InputStreamReader(  
                        new FileInputStream(filename)); // 建立一个输入流对象reader  
                BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言  
                String line = "";  
                line = br.readLine();  
                //while (line != null) {  
                //    line = br.readLine(); // 一次读入一行数据  
                //} 
                            int toIns = 123; //要插入的整数
                String[] snums = line.split(",");
                String[] result = new String[snums.length + 1];
                int j = 0;
                for (int i = 0; i < snums.length + 1; i++)
                {
                            if (toIns > Integer.parseInt(snums[i]) && j == 0) { result[i] = String.valueOf(toIns); j = 1; }
                                                    else if (j == 0) result[i] = snums[i]; 
                                                    else result[i] = snums[i- 1];
                }
                /* 写入Txt文件 */  
                File writename = new File("D:\\你的路径\\2.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件  
                writename.createNewFile(); // 创建新文件  
                BufferedWriter out = new BufferedWriter(new FileWriter(writename));  
                            for (int i = 0; i < result.length; i++)
                            {
                            if (i == 0) out.write(result[i]);
                else out.write("," + result[i]);
                            }
    
                out.flush(); // 把缓存区内容压入文件  
                out.close(); // 最后记得关闭文件  
    
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }  
    

    运行本程序之前,先创建一个1.txt的文本文件,里面单行用逗号分割地写入10个整数。保存到和程序一致的路径里。
    运行结果输出到2.txt

    评论

报告相同问题?