ユーザー名とパスワードがカンマで区切られたテキストファイルからユーザー名とパスワードを読み取る非常に簡単なプログラムを作成しました。テキストファイルの内容はJavaでの簡単な認証システムの支援
public class Authenticate {
public void signIn(String username, String password) throws IOException {
FileReader fr = new FileReader("location/accounts.txt");
BufferedReader br = new BufferedReader(fr);
while (true) {//read file line by line
String line = br.readLine();
if (line == null) {
break;
}
String splitByComma = ",";
String[] details = line.split(splitByComma);
String registeredUser = details[0];
String registeredPass= details[1];
if(username.equals(registeredUser) && password.equals(registeredPass)){
System.out.println("signed in successfully!");
}
else{
System.out.println("sign in failed");
}
}
br.close();
}
}
私を次のように私のJavaアプリケーションが書かれているアレックス、1234
デビッド、5678
accounts.txt次
が含まれていますプログラムを呼び出したAppクラス:
public class App {
public static void main(String[] args) throws IOException {
Register register = new Register("location/accounts.txt");
Authenticate auth = new Authenticate();
auth.signIn("David", "5678");
}
}
問題は、私は、例えば、方法の「アレックス」「1234」に渡すと、出力が
正常に署名されています!
失敗
ログインして、私は「デービッド」「5678に渡すとき、」私は正常に署名しなかった
に
看板を入手!
入力した資格情報に応じて、アプリケーションで「サインインが正常に完了」と「サインインが失敗しました」と出力されるようにします。
多くの感謝!
は単純に文字列変数を作成します。=は「失敗したサインイン」 文字列の結果。あなたのループの前に。その結果が見つかった場合は、結果を変更します。ループの後に結果変数をコンソール出力に書き出します。さらに、あなたが見つけたときに休憩をすることもできます - あなたが一致を見つけたら残りの部分を読むためのポイントはありません – Gildraths
私は問題をよりよく理解しています。ファイルをループしていて、一致しないユーザー名とパスワードを見つけるたびに、「サインインが失敗しました」というメッセージが表示され、最後にユーザー名とパスワードが見つかるまで「成功しました」というメッセージが表示されます。n – BigAl1992
ブレーク;コンソールの出力が成功した後でも、 – Gildraths