public static void main(String[] args) throws IOException { BufferedReader bufIn = new BufferedReader(new FileReader("demo11_出师表.txt")); ArrayList<String> list = new ArrayList<>(); String s = null; while ((s = bufIn.readLine()) != null) { list.add(s); } bufIn.close(); Collections.sort(list,(s1,s2)->{ String str1 = s1.substring(0, s1.indexOf(".")); String str2 = s2.substring(0, s2.indexOf(".")); int n1 = Integer.parseInt(str1); int n2 = Integer.parseInt(str2); return n1 - n2; }); BufferedWriter bufOut = new BufferedWriter(new FileWriter("demo16_出师表.txt")); for (String s1 : list) { bufOut.write(s1); bufOut.newLine(); } bufOut.close(); System.out.println("复制完毕"); }
时间: 2023-06-15 12:06:26 浏览: 310
这段代码是一个Java程序,主要实现的功能是读取文件 "demo11_出师表.txt" 中的内容,将每行前面的数字按升序排序,然后再将排好序的内容写入到一个新的文件 "demo16_出师表.txt" 中。
具体实现方法是使用了Java集合框架中的 ArrayList 类来存储文件内容,然后调用 Collections.sort() 方法来进行排序,排序的依据是每行前面的数字。通过使用 Lambda 表达式作为 Comparator 接口的实现,实现自定义的排序方法。最后使用 BufferedWriter 类将排好序的内容写入到新的文件中。
需要注意的是,代码中使用了 try-with-resources 语句,确保了文件在使用完毕后能够被自动关闭,避免了可能出现的资源泄漏问题。
相关问题
public static void main(String args[]) throws IOException { Scanner sc=new Scanner(System.in);
这是 Java 中一个简单的主函数,它使用 Scanner 类从命令行读取输入。具体来说,它创建了一个名为 sc 的 Scanner 对象,并将其与标准输入流 System.in 关联。接下来,它可以使用 sc 对象调用 Scanner 类中的方法来读取用户在命令行中输入的数据。在这个示例中,它使用了 throws IOException 来处理可能的输入输出异常。
public static void main(String[] args) throws IOException
这是一个 Java 程序的入口方法,它会在程序启动时被执行。其中,public 表示该方法是公共的,可以被其他类访问;static 表示该方法是静态方法,可以通过类名直接调用;void 表示该方法没有返回值;main 是方法名,程序会从这个方法开始执行;String[] args 是一个字符串类型的数组,用于接收命令行参数,throws IOException 表示可能会抛出 IOException 异常。
阅读全文