【问题标题】:Error while reading files: Exception in thread "main" java.util.NoSuchElementException: No line found读取文件时出错:线程“main”中的异常 java.util.NoSuchElementException:找不到行
【发布时间】:2019-12-02 14:19:10
【问题描述】:

我有错误调用这里的时间和日期。我正在尝试添加时间和日期特定的文件位置,因为我想在文件文本中列出时间和日期,所以如果我想查看用户出席情况,我可以看到他们的姓名、stuno、主题、部分、时间和日期.像时钟报错?我想要考勤系统,我只想添加一些时间和日期。

这是错误代码信息

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at GroupProjP3.database.main(database.java:44)

这是我的代码:

public static void main(String[] args) throws Exception{
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<String> name = new ArrayList<String>();
    ArrayList<String> studNo = new ArrayList<String>();
    ArrayList<String> section = new ArrayList<String>();
    ArrayList<String> subject = new ArrayList<String>();
    ArrayList<String> timeDate = new ArrayList<String>();
    Date td = new Date();


    File file1 = new File("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\name.txt");
    Scanner sca1 = new Scanner(file1);

    while(sca1.hasNextLine()) {
        String s = sca1.nextLine();
        name.add(s);
        }

    File file2 = new File("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\studNo.txt");
    Scanner sca2 = new Scanner(file1);

    while(sca2.hasNextLine()) {
        String s = sca1.nextLine();
        studNo.add(s);
        }

    File file3 = new File("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\section.txt");
    Scanner sca3 = new Scanner(file1);

    while(sca3.hasNextLine()) {
        String s = sca3.nextLine();
        section.add(s);
        }

    File file4 = new File("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\subject.txt");
    Scanner sca4 = new Scanner(file1);

    while(sca4.hasNextLine()) {
        String s = sca4.nextLine();
        subject.add(s);
        }

    File file5 = new File("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\TimeDate.txt");
    Scanner sca5 = new Scanner(file5);

    while(sca5.hasNextLine()) {
        String s = sca5.nextLine();
        timeDate.add(s);
    }

    while(true) {
        menu();
        char num = (char)buff.read();
        buff.readLine();

        switch(num){
            case '1': System.out.println("LOG IN FORM ATTENDANCE");
                System.out.print("Enter Full Name: ");
                String N = buff.readLine();
                name.add(N);
                System.out.print("Enter Student no.: ");
                String SN = buff.readLine();
                studNo.add(SN);
                System.out.print("Enter Section: ");
                String SEC = buff.readLine();
                section.add(SEC);
                System.out.print("Enter Current Subject: ");
                String SUB = buff.readLine();
                subject.add(SUB);
                System.out.println(td);
                String TD = buff.readLine();
                timeDate.add(TD);
                System.out.println("Attendance Added");
                FileWriter FW1 = new FileWriter("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\name.txt",true);
                FW1.write(N + System.getProperty("line.separator"));
                FW1.close();
                FileWriter FW2 = new FileWriter("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\studNo.txt",true);
                FW2.write(SN + System.getProperty("line.separator"));
                FW2.close();
                FileWriter FW3 = new FileWriter("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\section.txt",true);
                FW3.write(SEC + System.getProperty("line.separator"));
                FW3.close();
                FileWriter FW4 = new FileWriter("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\subject.txt",true);
                FW4.write(SUB + System.getProperty("line.separator"));
                FW4.close();
                FileWriter FW5 = new FileWriter("C:\\Users\\WERLLY\\Desktop\\Onceng Files\\JAVA GROUP PROJECT\\TimeDate.txt",true);
                FW5.write(TD + System.getProperty("line.separator"));
                FW5.close();
                break;
                    }
            }
        }

}

【问题讨论】:

  • 复制和粘贴最后一行使得不清楚 database.java 文件第 44 行的内容。用代码看一下 repo 会很好。

标签: java arraylist time-and-attendance


【解决方案1】:

在读取studNo 的第二个循环中,您调用sca1.nextLine 而不是sca2.nextLine()

因为只有当sca2.hasNextLine() 返回false 时您才会到达那条线,所以这将失败。

【讨论】:

  • 对不起,我没有注意到这一点。我已经在我的原始代码中编辑了该行。我的意思是我想添加一个命令,在我分配的记事本文件中自动添加时间和日期,因此如果用户登录以检查他/她的出勤情况,它将自动在记事本中写入时间和日期。但我试图欺骗 java 命令。 System.out.println(TD);字符串 TD = buff.readLine(); timeDate.add(TD):我认为这段代码可以工作,但发生了错误。我只想自动写时间和日期,这样用户就不需要手动写了。对不起我的英语
猜你喜欢
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2020-01-22
相关资源
最近更新 更多