Io流注册登录项目,注册的用户可以在电脑上保存下来,方便下次登录
2017-09-25 19:03
471 查看
同时也采用熟知的mvc三层构建设计模式,通过io流的形式将输入的对象存储在Hashset集合中在序列化输出在硬盘上指定的文件夹上,登录时,在反序列化输入进行匹配,这样就可以做到登录。下面请看代码。
首先建一个model包,里面创建Usel的类,包括具体的属性由于对象要进行序列化,所以要进行实现Serializable接口,包括对象的属性有name,password,score,还有一个
不进行对象序列化的日期date,用修饰符 transient。
package model;
import java.io.Serializable;
public class Usel implements Serializable {
private String name;
private String password;
private int score;
private transient String date;
public Usel() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Usel [name=" + name + ", password=" + password + ", score=" + score + ", date=" + date + "]";
}
public Usel(String name, String password, int score, String date) {
super();
this.name = name;
this.password = password;
this.score = score;
this.date = date;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
下面是model包的modeluse类,是主要的操作类
package model;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
public class UselModel {
//定义一个集合来装对象
private HashSet<Usel> hs=new HashSet<Usel>();
Scanner sc=new Scanner(System.in);
//注册功能
public void regist() throws Exception
{
//这里是首先进行一个将"C:/Users/Administrator/Desktop/regist.txt"封装在File中,目的是将之前已经注册有的取出来放在集合中
File f=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(f);
ObjectInputStream inp=new ObjectInputStream(in);
//将记事本中对象读出来存在集合中
hs=(HashSet<Usel>)inp.readObject();
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入密码:");
String password=sc.next();
System.out.print("请输入分数:");
int score=sc.nextInt();
String Date="";
Usel us=new Usel(name,password,score,Date);
FileOutputStream out=new FileOutputStream(f);
ObjectOutputStream put=new ObjectOutputStream(out);
将对像添加到集合中
hs.add(us);
将集合系列化到外部存储中
put.writeObject(hs);
// 清空集合
hs.clear();
System.out.print("注册成功");
put.close();
inp.close();
}
//登录功能
public boolean login() throws IOException, ClassNotFoundException
{
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入密码:");
String password=sc.next();
//将输入的字符串与txt文件中注册的进行匹配
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
@SuppressWarnings("unchecked")
//这是取出的集合
HashSet<Usel> obj=(HashSet<Usel>)inp.readObject();
//进行迭代,取出里面所有的用户
Iterator<Usel> it=obj.iterator();
while(it.hasNext()){
Usel d=it.next();
if(name.equals(d.getName())&&password.equals(d.getPassword()))
{
System.out.println("登录成功");
//登录成功,记录下登录的时间
Date date=new Date();
SimpleDateFormat ss=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
System.out.print(ss.format(date));
return true;
}
}
inp.close();
return false;
}
public void show() throws IOException, ClassNotFoundException
{
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
HashSet<Usel> obj=(HashSet<Usel>)inp.readObject();
Iterator<Usel> it=obj.iterator();
while(it.hasNext())
{
Usel d=it.next();
System.out.println("姓名:"+d.getName()+"分数"+d.getScore()+"密码"+d.getPassword());
}
inp.close();
}
// 修改用户
public void xiugai() throws IOException, ClassNotFoundException
{
System.out.print("请输入修改的名字");
String name=sc.next();
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
hs=(HashSet<Usel>)inp.readObject();
Iterator<Usel> it=hs.iterator();
while(it.hasNext())
{
Usel d=it.next();
if(d.getName().equals(name))
{
System.out.print("请输入修改的密码");
String password=sc.next();
d.setPassword(password);
System.out.print("修改成功");
break;
}
}
// 修改完了之后,还要记得将信息放到txt文件中
FileOutputStream out=new FileOutputStream(ff);
ObjectOutputStream put=new ObjectOutputStream(out);
put.writeObject(hs);
inp.close();
put.close();
}
}
上面就是model层,下面是controller层
package Controller;
import java.io.IOException;
import model.UselModel;
public class Manager {
private UselModel uselm=new UselModel();
public void Rigist() throws Exception
{
uselm.regist();
}
public boolean Login() throws ClassNotFoundException, IOException
{
return uselm.login();
}
public void Show() throws ClassNotFoundException, IOException
{
uselm.show();
}
public void xiugai() throws ClassNotFoundException, IOException
{
uselm.xiugai();
}
}
package View;
import java.io.IOException;
import java.util.Scanner;
import Controller.Manager;
public class menu {
private Scanner sc=new Scanner(System.in);
private Manager mana=new Manager();
public void onemenu() throws Exception
{
while(true)
{
System.out.println("欢迎进入登录注册系统");
System.out.println("1.注册2.登录3.退出");
switch (sc.nextInt()) {
case 1:
mana.Rigist();
break;
case 2:
boolean tu=mana.Login();
if(tu)
{
twomenu();
}
break;
case 3:
break;
default:
break;
}
}
}
public void twomenu() throws ClassNotFoundException, IOException
{
while(true)
{
System.out.println("1.查看2.修改密码3.返回上级");
switch (sc.nextInt()) {
case 1:
mana.Show();
break;
case 2:
mana.xiugai();
break;
case 3:
return;
default:
break;
}
}
}
}
以上就是io流注册登录修改系统
首先建一个model包,里面创建Usel的类,包括具体的属性由于对象要进行序列化,所以要进行实现Serializable接口,包括对象的属性有name,password,score,还有一个
不进行对象序列化的日期date,用修饰符 transient。
package model;
import java.io.Serializable;
public class Usel implements Serializable {
private String name;
private String password;
private int score;
private transient String date;
public Usel() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Usel [name=" + name + ", password=" + password + ", score=" + score + ", date=" + date + "]";
}
public Usel(String name, String password, int score, String date) {
super();
this.name = name;
this.password = password;
this.score = score;
this.date = date;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
下面是model包的modeluse类,是主要的操作类
package model;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
public class UselModel {
//定义一个集合来装对象
private HashSet<Usel> hs=new HashSet<Usel>();
Scanner sc=new Scanner(System.in);
//注册功能
public void regist() throws Exception
{
//这里是首先进行一个将"C:/Users/Administrator/Desktop/regist.txt"封装在File中,目的是将之前已经注册有的取出来放在集合中
File f=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(f);
ObjectInputStream inp=new ObjectInputStream(in);
//将记事本中对象读出来存在集合中
hs=(HashSet<Usel>)inp.readObject();
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入密码:");
String password=sc.next();
System.out.print("请输入分数:");
int score=sc.nextInt();
String Date="";
Usel us=new Usel(name,password,score,Date);
FileOutputStream out=new FileOutputStream(f);
ObjectOutputStream put=new ObjectOutputStream(out);
将对像添加到集合中
hs.add(us);
将集合系列化到外部存储中
put.writeObject(hs);
// 清空集合
hs.clear();
System.out.print("注册成功");
put.close();
inp.close();
}
//登录功能
public boolean login() throws IOException, ClassNotFoundException
{
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入密码:");
String password=sc.next();
//将输入的字符串与txt文件中注册的进行匹配
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
@SuppressWarnings("unchecked")
//这是取出的集合
HashSet<Usel> obj=(HashSet<Usel>)inp.readObject();
//进行迭代,取出里面所有的用户
Iterator<Usel> it=obj.iterator();
while(it.hasNext()){
Usel d=it.next();
if(name.equals(d.getName())&&password.equals(d.getPassword()))
{
System.out.println("登录成功");
//登录成功,记录下登录的时间
Date date=new Date();
SimpleDateFormat ss=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
System.out.print(ss.format(date));
return true;
}
}
inp.close();
return false;
}
public void show() throws IOException, ClassNotFoundException
{
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
HashSet<Usel> obj=(HashSet<Usel>)inp.readObject();
Iterator<Usel> it=obj.iterator();
while(it.hasNext())
{
Usel d=it.next();
System.out.println("姓名:"+d.getName()+"分数"+d.getScore()+"密码"+d.getPassword());
}
inp.close();
}
// 修改用户
public void xiugai() throws IOException, ClassNotFoundException
{
System.out.print("请输入修改的名字");
String name=sc.next();
File ff=new File("C:/Users/Administrator/Desktop/regist.txt");
FileInputStream in=new FileInputStream(ff);
ObjectInputStream inp=new ObjectInputStream(in);
hs=(HashSet<Usel>)inp.readObject();
Iterator<Usel> it=hs.iterator();
while(it.hasNext())
{
Usel d=it.next();
if(d.getName().equals(name))
{
System.out.print("请输入修改的密码");
String password=sc.next();
d.setPassword(password);
System.out.print("修改成功");
break;
}
}
// 修改完了之后,还要记得将信息放到txt文件中
FileOutputStream out=new FileOutputStream(ff);
ObjectOutputStream put=new ObjectOutputStream(out);
put.writeObject(hs);
inp.close();
put.close();
}
}
上面就是model层,下面是controller层
package Controller;
import java.io.IOException;
import model.UselModel;
public class Manager {
private UselModel uselm=new UselModel();
public void Rigist() throws Exception
{
uselm.regist();
}
public boolean Login() throws ClassNotFoundException, IOException
{
return uselm.login();
}
public void Show() throws ClassNotFoundException, IOException
{
uselm.show();
}
public void xiugai() throws ClassNotFoundException, IOException
{
uselm.xiugai();
}
}
package View;
import java.io.IOException;
import java.util.Scanner;
import Controller.Manager;
public class menu {
private Scanner sc=new Scanner(System.in);
private Manager mana=new Manager();
public void onemenu() throws Exception
{
while(true)
{
System.out.println("欢迎进入登录注册系统");
System.out.println("1.注册2.登录3.退出");
switch (sc.nextInt()) {
case 1:
mana.Rigist();
break;
case 2:
boolean tu=mana.Login();
if(tu)
{
twomenu();
}
break;
case 3:
break;
default:
break;
}
}
}
public void twomenu() throws ClassNotFoundException, IOException
{
while(true)
{
System.out.println("1.查看2.修改密码3.返回上级");
switch (sc.nextInt()) {
case 1:
mana.Show();
break;
case 2:
mana.xiugai();
break;
case 3:
return;
default:
break;
}
}
}
}
以上就是io流注册登录修改系统
相关文章推荐
- Java入门:用户登录与注册模块1(实践项目)——分析
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- javaweb项目实现用户进行预约时对你弹窗提醒,离线登录后也可以进行弹窗
- Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入
- yii2项目实战-用户管理之登录与注册功能实现
- yii2项目实战-用户管理之登录与注册功能实现
- vs2010asp.net网站制作用户注册登录界面源代码(包含验证码)并把用户信息保存到数据库sql2008
- 使用IO流保存用户登录
- J2EE初级学习项目——JSP+Servlet+JavaBean开发模式+Filter+(Listener)+Jdbc的用户登录注册系统
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- 保存mysql用户的登录信息到~.my.cnf文件;用于方便登录操作。
- 用户注册登录项目
- JSP之保存Cookie实现用户注册并自动登录
- 找出系统中所有以user0开头并且是可以登录和没有密码的用户,并生成文本文件保存。
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- 新浪微博JAVA开发-保存AccessToken数据,可以作为下次登录凭证
- django实战--天天生鲜项目开发(用户注册-登录-用户中心)
- 小作品(小项目?)技术总结(1)--用户注册、用户登录常用功能模块
- 2.如何让一个项目的用户目前只能是姓名登录,优化为增加一个字段为姓名和用户名同时都可以实现登录 ,并且用户名不能使中文?