有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java[3]中的文件<identifier>预期编译错误

import java.io.*;

class attendance_and_student_management {
    BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));

    File f5 = new File("e.txt");
    f5.createNewFile();
    File f4 = new File("d.txt");
    f4.createNewFile();
    File f3 = new File("c.txt");
    f3.createNewFile();
    File f2 = new File("b.txt");
    f2.createNewFile();
    File f1 = new File("a.txt");
    f1.createNewFile();
}

我试图在程序开始时创建5个文件,但是当我编译程序时,编译器会突出显示f5.createNewFile ();,并给出预期的错误


共 (2) 个答案

  1. # 1 楼答案

    您需要将代码包装在一个方法中。不能在类中直接使用普通语句

    main方法包装此文件是一个很好的方法:

    import java.io.*;
    
    class attendance_and_student_management {
        public static void main(String[] args) {
            BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));
    
            File f5 = new File("e.txt");
            f5.createNewFile();
            File f4 = new File("d.txt");
            f4.createNewFile();
            File f3 = new File("c.txt");
            f3.createNewFile();
            File f2 = new File("b.txt");
            f2.createNewFile();
            File f1 = new File("a.txt");
            f1.createNewFile();
        }
    }
    

    通过将其放在main方法中,您可以使用java -cp <classpath> attendance_and_student_management从命令行直接调用该类

    请注意,根据Java命名约定,类名应使用CamelCase并以大写字母开头。因此,根据这些约定,类的正确名称是AttendanceAndStudentManagement

  2. # 2 楼答案

    在类中可以使用“普通语句”作为静态初始化,如下所示:

    public class AttendanceAndStudentManagement {
      BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));
    
      static {
        try {
          File f5 = new File("e.txt");
          f5.createNewFile();
          File f4 = new File("d.txt");
          f4.createNewFile();
          File f3 = new File("c.txt");
          f3.createNewFile();
          File f2 = new File("b.txt");
          f2.createNewFile();
          File f1 = new File("a.txt");
          f1.createNewFile();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
    

    根据您的用例,这可能比添加main()方法更好,因为它也可以在另一个类中存在main()方法的情况下工作。静态块在类加载时执行,即在第一个对象实例化或第一次调用静态方法之前