用扫描仪读取文件

时间:2015-09-18 06:02:56

标签: java

编辑:我添加了一个新的部分来捕获fileexception错误

这是一个pincheck计划。我应该使用以下行创建一个txt文件:

  彼得,1212
  约翰,1234年   玛丽,0000

然后我必须编写一个java程序来提示用户输入txt文件的文件路径,然后输入他们的名字和密码。我能够编译我的代码但是当我输入正确的名称和引脚时,我没有得到预期的结果。

import java.util.*;
import java.io.*;

public class PINCheck {
  public static void main(String[]args) {

    Scanner s = new Scanner(System.in);
    System.out.print("Enter file path: ");
    String filepath = s.nextLine();

    File passwordFile = new File(filepath);

    System.out.print("Enter name: ");
    String name = s.nextLine();

    System.out.print("Enter password: ");
    String password = s.nextLine();

    try {
        Scanner sc = new Scanner(passwordFile);
        while (sc.hasNext()) {
            if (password.matches(".*[a-zA-Z]+.*")) {
                System.out.println("You have entered a non-numerical PIN!");
            } else if (sc.hasNext(name) && sc.hasNext(password)) {
                System.out.println("You have logged in successfully.");
            }else {
                System.out.println("Login Failed.");
            }
            break;
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
  }
}

1 个答案:

答案 0 :(得分:0)

这一行:Scanner sc = new Scanner("passwordFile");表示Scanner将从构造函数中指定的String进行扫描,而不是实际文件。

改为使用Scanner sc = new Scanner(passwordFile);

File passwordFile = new File("filepath");的类似错误。

File passwordFile = new File(filepath);

一样使用它

在这两种情况下,都要传递变量,而不是字符串。