文档章节

IO版的登录注册系统简单版本

大强森
 大强森
发布于 2017/04/09 00:51
字数 615
阅读 26
收藏 1
Io
import java.util.Scanner;

/*
  io流实现登录注册版本
	1.启动系统类;
		启动开始
	2.数据库类
		以Properties类和io流的结合       操作文本为主体
	3.注册接口
	4.登录接口
*/
public class start {
	static int dengLuCount = 3;// 所允许登录次数记录

	public static void main(String[] args) {
		System.out.println("---登录请输入1,注册请输入2---");
		Scanner sc = new Scanner(System.in);
		int n = 0;
		if ((n = sc.nextInt()) == 1) {
			System.out.println("您将进入登录界面!");
			denglu();
		} else {
			System.out.println("您将进入注册界面!");
			zhuCe();
		}

	}

	private static void zhuCe() {
		System.out.println();
		System.out.println("----注册界面----");
		System.out.println("请输入注册用户名:");
		String user = new Scanner(System.in).nextLine();

		System.out.println("---请输入密码:---");
		String mima = new Scanner(System.in).nextLine();

		boolean b = new shuJuKu().shuJuKu_zhuCe(user, mima);
		if (b) {
			System.out.println("注册成功!");
		} else {
			System.out.println("注册失败");
		}

	}

	private static void denglu() {
		System.out.println();
		System.out.println("----登录界面----");
		System.out.println("请输入用户名:");
		String user = new Scanner(System.in).nextLine();

		System.out.println("请输入密码:");
		String mima = new Scanner(System.in).nextLine();

		boolean b = new shuJuKu().shuJuKu_dengLu(user, mima);
		if (b == true) {
			System.out.println("登录成功!");
			dengLuCount = 0;
		} else {
			dengLuCount--;
			System.out.println("登录失败!请重新登录!你还有" + dengLuCount + "次机会!");

		}

		if (dengLuCount != 0) {
			denglu();
		}

	}
}

 

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class shuJuKu implements zhuCe, dengLu {

	// 注册成功,返回true
	public boolean shuJuKu_zhuCe(String user, String mima) {
		boolean b = false;
		Properties p = new Properties();
		// 将用户名和密码添加到集合
		p.setProperty(user, mima);

		Writer w = null;

		// 将集合中的键值对数据写入文本中,(数据库文本),同时,将时间信息写的更加直白
		try {
			w = new FileWriter("a.txt");
			p.store(w, new SimpleDateFormat("yyyy:MM:dd  hh:mm:ss").format(new Date()));
			w.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		// 要判断注册(写入)是否成功,我们就必须再从文本读取出来,看键值对是否存在,存在就是成功写入。
		p.clear();// 先清空集合
		Reader r = null;
		try {
			r = new FileReader("a.txt");
			p.load(r);
			r.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// 遍历集合判断
		Set<String> setKey = p.stringPropertyNames();
		for (String key : setKey) {
			String value = p.getProperty(key);
			if (key.equals(user) && value.equals(mima)) {

				b = true;
			} else {
				b = false;
			}

		}
		return b;
	}

	// 登录方法
	public boolean shuJuKu_dengLu(String user, String mima) {

		boolean b = false;

		// 将数据库文本加载到集合中
		Properties p = new Properties();
		FileReader r = null;

		try {
			r = new FileReader("a.txt");
			p.load(r);
			r.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		// Set<Map.Entry<K,V>> entrySet()

		Set<Map.Entry<Object, Object>> s = p.entrySet();
		for (Map.Entry<Object, Object> ob : s) {
			String key = (String) ob.getKey();
			String value = (String) ob.getValue();
			if (key.equals(user) && value.equals(mima)) {
				b = true;
			}
		}
		return b;
	}

}
//定义登录接口
public interface dengLu {
	public boolean shuJuKu_dengLu(String user, String mima);
}
//定义注册接口
public interface zhuCe {
	public boolean shuJuKu_zhuCe(String user, String mima);
}
#2017:04:09  12:43:42
#Sun Apr 09 00:43:42 CST 2017
11=24

 

© 著作权归作者所有

共有 人打赏支持
大强森
粉丝 2
博文 24
码字总数 9681
作品 0
奉贤
程序员
私信 提问
StartBBS_v1.0.4已支持二级目录安装

StartBBS轻量社区系统1.0.4发布啦!! 此版本已支持二级目录安装,并支持动态/伪静态一键切换!! StartBBS(起点开源社区系统)是一个基于PHP+MySQL开发的新型社区系统,她轻量小巧, 简单易...

startbbs
2013/01/26
1K
8
基于 jpress 二次开发的 H5 商城--jpress_mall

最近公司做的几个项目都在海哥的jpress做二次开发,首先要感谢海哥的jpress 地址:http://jpress.io,还有詹哥的jfinal 地址:http://jfinal.com ,我们都是站在巨人的肩膀上搞开发。 这个月...

吖梁
2017/07/04
1K
3
【Mockplus教程】账号和购买

Mockplus 的在线版和桌面版使用都需要登录账号。 使用在线版时必须一直保持在线。 使用桌面版时,首次使用需要登录,之后可以离线使用。用到需要联网的功能时(例如云同步)需要保持在线。 ...

jongde
2015/08/18
0
1
我的开源项目,趣享GIF源代码已正式公开

版权声明:本文出自郭霖的博客,转载必须注明出处。 https://blog.csdn.net/sinyu890807/article/details/86669020 转载请注明出处:https://blog.csdn.net/guolinblog/article/details/8666...

guolin
01/29
0
0
网店系统 TinyShop V2.5 版正式发布

TinyShopV2.5版,微信登录增添unionid,对以前版本已注册用户,会自动增补unionid,拆分缓存清理,多图片上传,优化系统更好的支持PHP7.X,精减系统。 后台多图片一次上传功能,提高图片添加...

TinyShop团队
2016/12/20
3.3K
4

没有更多内容

加载失败,请刷新页面

加载更多

生产者消费者问题(PV操作)

一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减...

shzwork
6分钟前
0
0
重新认识网络通信协议

OSI网络分层 应用层 http, smtp,pop3这些都属于应用层协议 为用户的应用程序提供服务 表示层 确保一个系统的应用层发送的信息被另一个系统的应用层接收到 会话层 通过传输层建立数据传输的通...

最胖的瘦子
17分钟前
0
0
【转】分布式数据流的轻量级异步快照

本篇翻译自论文:Lightweight Asynchronous Snapshots for Distributed Dataflows,Flink的容错快照模型即来源于该论文。原文地址:https://arxiv.org/pdf/1506.08603.pdf 分布式数据流的轻量...

yiduwangkai
20分钟前
0
0
java使用反射机制设置私有成员变量的值

写一个方法:public void setProperty(Objectobj, String propertyName, Object value){}, 此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyNam...

群星纪元
26分钟前
0
0
用 Tapestry 的方式在页面模板中加入注释

<span jwcid="$remove$">这里是注释</span>

LeoXu
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部