前提・実現したいこと
ユーザーが入力したユーザー名とパスワードを、
DBに見立てたテキストファイルを読み込んで照合し、ユーザー認証をしたいです。
該当のソースコード
//入力ストリームの生成 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedReader bufferedReader = null; try { //テキストリスト FileLoad fileLoad = new FileLoad("/Users/test/UserInformation"); // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する bufferedReader = new BufferedReader( new InputStreamReader(new FileInputStream(fileLoad.Load()), "Shift-JIS")); List<String> TextList = new ArrayList<>(); String userName = br.readLine(); String password = br.readLine(); //テキストリストを参照して、ユーザー認証をする String data; while (true) { data = bufferedReader.readLine(); if (data == null) { break; } TextList.add(data); System.out.println(data); } // データを分解する TextList.forEach(lineData -> { List<String> dataList = Arrays.asList(lineData.split(":", 0)); dataList.forEach(u -> { if (u.equals(userName)) { dataList.forEach(p -> { if (p.equals(password)) { System.out.println("正常にログインできました"); } else { System.out.println("ユーザー名、またはパスワードが一致しません"); } }); } else { System.out.println("ユーザー名、またはパスワードが一致しません"); } }); }); break;
DBに見立てたテキストファイルの内容
USER_ID:00001 NAME:test PASSWORD:password ADMINFLG:1 RETIREFLG:0 USER_ID:00002 NAME:test2 PASSWORD:password2 ADMINFLG:1 RETIREFLG:0 USER_ID:00003 NAME:test3 PASSWORD:password3 ADMINFLG:1 RETIREFLG:0
上記のようなテキストファイルをDBに見立ててユーザー認証のように動作させたいと考えております。
ファイルの内容を一行ずつ読み取ってコロンで区切った文字列を読み込もうと考えたのですが、これだとそもそもユーザー名とパスワードを同時に認証することができないのがわかりました。
ユーザー認証は入力された文字列とファイル内の文字列を比較して行いたいと考えております。
どなたかご教示いただけませんでしょうか。
javaのバージョン
1.8.0_231
実行環境
Eclipse IDE for Enterprise Java Developers.
Version: 2019-09 R (4.13.0)
回答2件
あなたの回答
tips
プレビュー