【Properties类】从控制台输入用户名和密码,与属性文件prop.txt中的数据进行验证登录

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.Properties;

/**
 * 从控制台输入用户名和密码,与属性文件prop.txt中的数据进行验证登录
 * @author 小苗
 *
 */
public class LoginProp {
	private String propFile;

	public LoginProp(String propFile) {
		this.propFile = propFile;
	}
	//从属性文件中进行用户名密码验证登录
	public Boolean checkProp(){
		try {
			//从控制台获得用户名和密码
			System.out.println("请输入用户名···");
			String username = new BufferedReader(
					new InputStreamReader(System.in)).readLine();
			System.out.println("请输入密码···");
			String password = new BufferedReader(
					new InputStreamReader(System.in)).readLine();
		    Properties prop = new Properties();
		    //加载属性文件
		    prop.load(new FileInputStream(propFile)); 
		    Enumeration em = prop.propertyNames();
		  //hasMoreElements()  测试此枚举是否包含更多的元素
		    while(em.hasMoreElements()){
		    	String key = em.nextElement().toString();  //获取键值
		    	if(key.equals(username) && prop.getProperty(key).equals(password)){
		    		return true;
		    	}
		    }
		} catch (IOException e) {
			e.printStackTrace();
		}
		return false;
	}
	
	public static void main(String[] args) {
		LoginProp lp = new LoginProp("E:\\peixun/prop.txt");
		if(lp.checkProp()){
			System.out.println("登录成功!");
		}else
			System.out.println("用户名或密码错误!");
	}
	
}

 

3.创建一个属性文件,往里面添加5条用户名对应密码的记录
 * (zhongbei=123,yangkai=234,sunxu=345,ghz=456,zhouwei=567),
 * 验证输入用户名是否存在,若存在继续验证密码是否正确。

 

下面这个是一个学生做的,做的很不错,我把验证用户名密码那稍微修改了点,让其返回一个Boolean值,解决了每次进行验证都打印一句话的问题。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Scanner;

/**
 * @author zb
 * 3.创建一个属性文件,往里面添加5条用户名对应密码的记录
 * (zhongbei=123,yangkai=234,sunxu=345,ghz=456,zhouwei=567),
 * 验证输入用户名是否存在,若存在继续验证密码是否正确。
 */
public class PropertiesTest {
	
	private Boolean verification() throws IOException {
		Properties pro = new Properties();
		pro.setProperty("zhongbei","123");//往属性文件中加入键和值
		pro.setProperty("yangkai", "234");
		pro.setProperty("sunxu", "345");
		pro.setProperty("ghz", "456");
		pro.setProperty("zhouwei", "567");
		File f = new File("d:/pro.properties");
		FileOutputStream fos = new FileOutputStream(f);
		pro.store(fos, "This is myproperties");//保存属性文件
		fos.close();
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入需要验证的用户名...");
		if (scan.hasNext()) {
			String str = scan.next();
			FileInputStream fin = new FileInputStream(f);
			pro.load(fin);//加载属性文件
			Enumeration<String> e = (Enumeration<String>)pro.propertyNames();
			//获取属性文件中所有的key
			while (e.hasMoreElements()) {//遍历每一个key
				String key = e.nextElement();//得到每一个key
				if (key.equals(str)) {
					System.out.println("用户名存在,请输入密码");
					if (scan.hasNext()) {
						String s = scan.next();
						if (pro.getProperty(key).equals(s)) {
							System.out.println("登录成功!");
							return true;
						}else 
							return false;
					}
				} 
			}
			fin.close();
		}
		return false;
	}
	
	public static void main(String[] args) {
		try {
			PropertiesTest pt = new PropertiesTest();
			if(!pt.verification()){
				System.out.println("用户名或密码错误!");
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

你可能感兴趣的:(java,F#)