package com.cwc.mystudy.entity;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class AuthTest {
public static void main(String[] args) {
System.out.println("请输入用户名:");
Scanner s = new Scanner(System.in);
String name = s.next();
System.out.println("请输入密码:");
String password = s.next();
s.close();
AuthTest test = new AuthTest();
test.echResult(new Auth1(), name, password);
test.echResult(new Auth2(), name, password);
}
void echResult(Auth aAuth, String name, String password){
if (aAuth.check(name, password)) {
System.out.println("OK");
} else {
System.out.println("Error");
}
}
}
interface Auth {
boolean check(String name, String password);
Map<String, String> getAuthData();
}
class Auth1 implements Auth {
private static final String AUTH_FILE_PATH = "d:/auth1.txt";
@Override
public boolean check(String name, String password) {
if (name != null && name.length() > 0 && password != null && password.length() > 0) {
Map<String, String> authData = getAuthData();
if (authData.size() > 0 && authData.containsKey(name)) {
if (authData.get(name).equals(password))
return true;
}
}
return false;
}
/**
*
* 姓名:密码
*
*/
@Override
public Map<String, String> getAuthData() {
Map<String, String> result = new HashMap<String, String>();
try {
BufferedReader br = new BufferedReader(new FileReader(new File(AUTH_FILE_PATH)));
String info = null;
while(null !=(info = br.readLine())) {
String[] temp = info.split(":");
result.put(temp[0], temp[1]);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
class Auth2 implements Auth {
private static final String AUTH_FILE_PATH = "d:/auth2.txt";
@Override
public boolean check(String name, String password) {
if (name != null && name.length() > 0 && password != null && password.length() > 0) {
Map<String, String> authData = getAuthData();
if (authData.size() > 0 && authData.containsKey(name)) {
if (authData.get(name).equals(password))
return true;
}
}
return false;
}
/**
*
* 姓名
* 密码
*/
@Override
public Map<String, String> getAuthData() {
List<String> userData = new ArrayList<String>();
Map<String, String> result = new HashMap<String, String>();
try {
BufferedReader br = new BufferedReader(new FileReader(new File(AUTH_FILE_PATH)));
String info = null;
while(null !=(info = br.readLine())) {
userData.add(info);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int size = userData.size();
for (int i = 0; i < size; i=i+2){
result.put(userData.get(i), userData.get(i+1));
}
return result;
}
}
温馨提示:答案为网友推荐,仅供参考