【JavaSE练习】项目_项目_模拟用户登陆注册功能(IO完成)
来源:互联网 发布:topsurv软件 编辑:程序博客网 时间:2024/05/16 19:02
需求:模拟用户登录注册--------集合进行完成
在前面,我们用集合完成了这个项目,那集合和IO有何区别呢?
我们共创建了以下几个类
User-----UserDao-----UserDaoImpl----UserTest
其实区别就在于UserDaoImpl类中,注册和登录的功能
集合中:是将信息传入到集合
IO中:是将信息传入到文本文件,那么每次运行就可以不用注册,可以直接输入
因此:
项目的分析思路在此就不详细介绍(具体参考集合篇)
其他代码也不详细介绍(只给出原码)
在此只要详细介绍UserDaoImple
在此给出集合实现的链接:http://blog.csdn.net/wpf719971425/article/details/76695500
User
/** * 这是用户的基本描述类 * * @author Wolf * @version V1.0 */public class User {private String username;private String password;public User() {super();}public User(String username, String password) {super();this.username = username;this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}UserDaoimport com.xxxx.user.User;/** * 这是用户的操作接口 * * @author Wolf * @version V1.0 */public interface UserDao {/** * 这是用户登录功能 * * @param username * 用户名 * @param password * 密码 * @return 返回的是用户登录是否成功 */public abstract boolean isLogic(String username, String password);/** * 这是用户注册功能 * * @param user * 注册了用户信息 */public abstract void regist(User user);}UserDaoImpl(重点)import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import com.xxxx.user.User;/** * 这是用户操作的具体实现类(IO实现) * * @author Wolf * @version V1.0 */public class UserDaoImpl implements UserDao {// 封装一个文件,不让外界看到,防止逻辑错误:private staticprivate static File file = new File("user.txt");// 静态代码块,保证user.txt文件存在static {try {file.createNewFile();} catch (IOException e) {System.out.println("创建文件失败!");}}/** * 用户登录功能 * @return */@Overridepublic boolean isLogic(String username, String password) {// 创建字符缓冲输入流对象BufferedReader br = null;// 创建对象try {br = new BufferedReader(new FileReader(file));// 一行一行读String line = null;while ((line = br.readLine()) != null) {// 判断line = "用户名" + "=" + "密码"String[] datas = line.split("=");if (datas[0].equals(username) && datas[1].equals(password)) {return true;}}} catch (FileNotFoundException e) {System.out.println("用户登录找不到文件信息!");} catch (IOException e) {System.out.println("登录失败!");} finally {try {br.close();} catch (IOException e) {System.out.println("用户登录释放资源失败!");}}return false;}/** * 用户注册功能:用户注册的时候,定义一种规则:用户名=密码 */@Overridepublic void regist(User user) {// 创建字符缓冲输出流对象BufferedWriter bw = null;// 创建字符缓冲输入流对象BufferedReader br = null;// 创建对象try {// 实现追加写入,保证重新加载账户不被覆盖bw = new BufferedWriter(new FileWriter(file, true));br = new BufferedReader(new FileReader(file));// 读取信息,判断账户是否存在// 一行一行读String line = null;while ((line = br.readLine()) != null) {String[] datas = line.split("=");// 判断用户名是否重复if (datas[0].equals(user.getUsername())) {System.out.println("对不起!账户已存在!注册失败!");break;} else {// 写数据bw.write(user.getUsername() + "=" + user.getPassword());bw.newLine();bw.flush();}}} catch (IOException e) {System.out.println("注册失败!");} finally {try {br.close();bw.close();} catch (IOException e) {System.out.println("用户注册释放资源失败!");}}}}UserTestimport java.util.Scanner;import com.xxxx.dao.UserDao;import com.xxxx.dao.UserDaoImpl;import com.xxxx.user.User;/** * 用户测试类 * * @author Wolf * @version V1.0 */public class UserTest {public static void main(String[] args) {// 死循环 多次选择while (true) {// 简单的界面System.out.println("**********欢迎来到英雄联盟**********");System.out.println("*************1--登录*************");System.out.println("*************2--注册*************");System.out.println("*************3--退出*************");System.out.println("********************************");// 创建键盘录入对象Scanner sc = new Scanner(System.in);System.out.println("请选择操作:");String choice = sc.next();// 创建对象UserDao ud = new UserDaoImpl();switch (choice) {case "1":System.out.println("*************登陆界面*************");System.out.println("请输入用户名:");String username = sc.next();System.out.println("请输入密码");String password = sc.next();// 调用登陆功能boolean logic = ud.isLogic(username, password);// 判断if (logic) {/* * 这个位置可以调用一些功能,比如猜数字游戏,上一章的录入学生成绩 * 也可以将之前的《模拟银行账户功能》系统插入进来 * 下面就简单的写一些操作测试一下,具体的功能自行测试 */System.out.println("登陆成功!欢迎来到召唤师峡谷!");System.out.println("********************************");System.out.println("是否开始游戏?y/n");while (true) {String s = sc.next();if (s.equalsIgnoreCase("y")) {System.out.println("********************************");System.out.println("敌军还有30秒到达战场!");System.out.println("碾碎他们!");System.out.println("Victroy");System.out.println("********************************");System.out.println("是否开始下一局?y/n");} else {break;}}System.out.println("********************************");System.out.println("谢谢!再见");System.exit(0);} else {System.out.println("********************************");System.out.println("帐号或密码错误!登录失败");}break;case "2":System.out.println("*************注册界面*************");System.out.println("请输入用户名:");String newUsername = sc.next();System.out.println("请输入密码:");String newPassword = sc.next();// 将用户信息封装到User中User user = new User(newUsername, newPassword);// 调用注册功能ud.regist(user);break;case "3":default:System.out.println("谢谢!再见");System.exit(0);}}}}
运行完成刷新一下
部分结果(大部分结果图参考之前那篇)
就加了一个判断用户名是否存在功能
重新运行程序可以不用在注册,直接登录注册过的用户名即可
阅读全文
1 0
- 【JavaSE练习】项目_项目_模拟用户登陆注册功能(IO完成)
- 【JavaSE练习】项目_模拟用户登陆注册功能(集合完成)
- 【2】CRM_用户模块_注册功能
- 【JavaSE练习】面向对象_模拟银行账户
- 【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统
- 关于用户注册、登陆、注销小项目
- 文件IO小项目-模拟登陆系统
- web day24 小项目练习图书商城, 用户,模块(注册,激活,登陆,退出),分类/图书模块
- IO流_练习
- 【JavaSE_项目练习】用户登录注册
- 15_常用API_第1天(Object、String、StringBuffer、用户登陆注册)
- AJAX操作04_模拟用户注册(jQ)
- 一个完整的Nodejs项目 完成连接数据库(MySQL),登陆、注册功能 session的使用 和发送邮件
- 项目开发登陆注册
- 小项目第一天完成了注册功能
- 用户注册_表单验证
- javaSE第一部分_循环练习_百钱百鸡问题
- 想想MVC-使用JavaBean完成用户登陆,注册和修改密码功能
- 2017百度之星初赛:B-1001. Chess
- 卓有成效的管理者(笔记)——掌握自己的时间
- win 10 硬盘安装 ubuntu kylin
- java求解水仙花数
- [笔记分享] [Camera] MTK Camera AF及tuning
- 【JavaSE练习】项目_项目_模拟用户登陆注册功能(IO完成)
- 在服务器端配置jypyter环境
- 学生信息管理系统
- 重建二叉树
- 《Python爬虫开发与项目实战》读书笔记
- 【Java多线程与并发库】01 传统线程技术
- 【支付系统学习笔记】-二支付系统设计(支付网关设计)
- HTTP协议详解(很经典)
- 字典树