-1

我目前正在尝试做的是从一个.CSV文件中检索信息,该文件包含有关用户腰部凭据的信息,格式如下:

UserName,Password,PropertyName,PropertyValue 
UserName,Password,PropertyName,PropertyValue

所以我找到了一种使用 split() 函数分离用户名信息的方法。我现在很难在我的 CLI 类中使用此信息,我在其中搜索以查看输入到我的程序命令行中的用户名是否与我的 csv 文件中的用户名匹配,以及它是否也与给定的密码匹配。任何帮助将不胜感激,谢谢。

import java.util.*;
import java.io.*;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class readCSV {
    private String[] userData;
    public void checkLogin() throws IOException
    {
        String fileName = "C:/Users/Sean/Documents/Programming assigment/Users.csv";
        File file = new File(fileName);
        try
        {
            Scanner inputStream = new Scanner(file);
            while(inputStream.hasNext()){
                {
                    String data = inputStream.next();
                    userData = data.split(",");
                }
            }
        } catch(FileNotFoundException er){
            System.out.print(er); 
            System.exit(0);
        }
    }

    public String getLogin()
    {
        return userData[0];
    }
}

命令行界面

import java.util.*;
import java.io.*;
public class CLI
{
    Scanner input = new Scanner(System.in);
    private readCSV l1 = new readCSV();

    public void login() throws IOException
    {
        System.out.println("Enter Username:");
        String username = input.nextLine();
        System.out.println("Enter Password:");
        String password = input.nextLine();
        try{
            l1.checkLogin();
        }
        catch(Exception er){ System.out.print(er); }

卡在这行代码检查用户名和密码

4

1 回答 1

2

您的程序设计没有经过深思熟虑。理想情况下,您的checkLogin方法应该接受String用户名和密码的两个参数,然后返回 aboolean以确定登录凭据是否正确:

public boolean checkLogin(String username, String password) {
    // Read CSV file, compare entries against provided username and password.
    // Return true if a match is found. Otherwise, return false.
}

然后显然在您的login方法中,您会将输入的用户名和密码传递给该checkLogin方法:

boolean loggedIn = false;
try {
    loggedIn = checkLogin(username, password);
} catch(Exception ex) {
    ex.printStackTrace();
}
于 2012-11-23T10:50:48.707 回答