java - 我的java代码有缺陷,但我不明白为什么

标签 java java.util.scanner

我对java很陌生,我缺少一些非常基本的东西。当我运行代码时,我试图为代码中创建的帐户添加值(value)。当我尝试运行代码时,我收到一个错误,指出找不到文件,但我认为该文件是在代码内创建的。

import java.util.Scanner;
import java.io.File;
import java.io.IOException;

class DoPayroll
{
public static void main(String args[])
                                    throws
        IOException     
{
    Scanner diskScanner =
        new Scanner(new File("EmployeeInfo.txt"));

    for (int empNum = 1; empNum <= 3; empNum++)
    {
        payOneEmployee(diskScanner);
    }
}

static void payOneEmployee(Scanner aScanner)
{
    Employee anEmployee = new Employee();

    anEmployee.setName(aScanner.nextLine());
    anEmployee.setJobTitle(aScanner.nextLine());
    anEmployee.cutCheck(aScanner.nextDouble());
    aScanner.nextLine();
}
}

运行后我收到以下错误

Exception in thread "main" java.io.FileNotFoundException: EmployeeInfo.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.util.Scanner.<init>(Scanner.java:636)
at DoPayroll.main(jobexe.java:11)

我认为在上面的代码中使用 new Scanner(new File("EmployeeInfo.txt") 一旦我输入一个值就会创建新文件。请给我一个简单的解决方案和解释.

最佳答案

当您写入时,它将创建一个新文件。然而,要读取它,它必须已经存在。您可能想检查它是否存在

File file = new File("EmployeeInfo.txt");
if (file.exists()) {
    Scanner diskScanner = new Scanner(file);
    for (int empNum = 1; empNum <= 3; empNum++)
        payOneEmployee(diskScanner);
}

关于java - 我的java代码有缺陷,但我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5421502/

相关文章:

java - 为什么我的方面不起作用?

java - 在 hibernate/jpa 最佳实践问题中将分离的或新的实体与现有实体合并

Java 交互不允许扫描用户输入

java - 使用 java.util.Scanner 将网站数据读取到 Java 变量中

java - 扫描仪 - 管理文本文件的输入

java - Collections.unmodifiableMap API : Any performance overhead in case of frequent updates to parent Map?

Java:无法从 TemporalAccessor 获取 LocalDate

java - 如何在 ant 的 build.xml 中设置 -Dfile.encoding?

Java Scanner 接收不存在的输入

java - 为什么 java.util.Scanner.next() 返回空字符串?