无法读取文本文件内容java

时间:2018-05-03 15:13:30

标签: java arrays

我正在开发一个java控制台应用程序,它应该具有admin和普通用户的登录界面,根据文本文件的内容读取和验证输入。

但是我似乎一直在阅读文本文件的内容,并且它不断发出一个错误,指出:"找不到文件"

下面是我的代码,用于查找和读取文本文件的内容。

 //Method for teller/shop assistant login
 public static void tellerLogin(){

 //loading and reading the text file containing the login credentials
    Scanner scan = new Scanner (new File("the \\ dir\\myFile.extension"));
    Scanner keyboard = new Scanner (System.in);
    String user = scan.nextLine();
    String pass = scan.nextLine();

  //String variables to hold the data retrieved from the text file
    String inpUser = keyboard.nextLine();
    String inPass = keyboard.nextLine();

  //Verifying the user input against the text file contents for verification
    if (inpUser.equals(user) && inPass.equals(pass)){
        System.out.println(" Logged in as Admin");
        tellerMenu();

    }

    else{
        System.out.println("Incorrect credentials");
    }
}

这是错误:

 SEVERE: null java.io.FileNotFoundException: D:\pasd\adminlogin.txt (The system cannot find the file specified) at  
 java.io.FileInputStream.open0(Native Method) at 
 java.io.FileInputStream.open(FileInputStream.java:195) at 
 java.io.FileInputStream.<init>(FileInputStream.java:138) at 
 java.util.Scanner.<init>(Scanner.java:611) at 
 kiosk.Kiosk.adminLogin(Kiosk.java:89) at kiosk.Kiosk.main(Kiosk.java:35)

1 个答案:

答案 0 :(得分:0)

如果你想在这里使用绝对路径文件,那么你需要

新文件(“\ dir \ myFile.extension”);

\ dir \ myFile.extension是绝对路径;

注意:

的示例语法

windows system:C:\的1.txt,

Mac or linux:/用户/家庭/ xxx.txt

如果将文件设置为相对路径,则可以使用资源目录中的资源文件:YouClass.class.getClassLoader().getResource(path)

E.g。

 String path="1.txt";//set your file path
    //get file resource
    URL resource = MainTest.class.getClassLoader().getResource(path);
    //if file not exist
 if(resource==null){
        throw new NullPointerException("not found a resource file")
    }
    //create file using path
    File file= new File(resource.getFile());
    //get file
    Scanner scan = new Scanner (file);

具体来说,对于您的问题:

  1. 您需要在路径D:\pasd\adminlogin.txt

  2. 中确认您的文件
  3. 您可以将\的路径分隔符/更改为D:/pasd/adminlogin.txt;

  4. 建议您将adminlogin.txt放入项目resources目录

  5. 这个项目是你的问题的例子: https://github.com/lonecloud/stackoverflow/