`

javaIO练习之简单用户登录系统

阅读更多
package com.iouser.pojo;

public class User {
	private int id ;
	private String name ;
	private String psw ;
	private String sex ;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPsw() {
		return psw;
	}
	public void setPsw(String psw) {
		this.psw = psw;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
}



package com.iouser.main;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import com.iouser.pojo.User;

public class UserDemoMain {
	private static Scanner sc ;
	private static BufferedWriter bw ;
	private static BufferedReader br ;
	
	public static void init(){
		sc = new Scanner(System.in);
		try {
			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("bw.txt",true),"UTF-8"));
			br = new BufferedReader(new InputStreamReader(new FileInputStream("bw.txt"),"UTF-8"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void close(){
		try{
			if(bw!=null){
				bw.close();
			}
			if(br!=null){
				br.close();
			}
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		init();
		while(true){
			System.out.println("A: 登录");
			System.out.println("B: 注册");
			System.out.println("Q: 退出");
			String in = sc.next();
			if("q".equals(in.toLowerCase())){
				System.out.println("************正在退出系统!************");
				break;
			}else if("a".equals(in.toLowerCase())){
				boolean flag = login();
				if(flag){
					System.out.println("*********进入系统功能页面**********");
				}else{
					System.out.println("*********登录失败,请重新选择*******");
				}
			}else if("b".equals(in.toLowerCase())){
				register();
			}else{
				System.out.println("您输入有误,请重新输入");
			}
		}
		close();
		System.out.println("已退出系统,谢谢使用");
	}

	private static void register() {
		 System.out.println("******请输入你的账号信息进行注册***********");
		 System.out.println("请输入你的账号名称:");
		 //通过获取文件中已存在的账号信息
	/*	 List<User> list = null;
		 try {
			 list = getAllUser();
		} catch (IOException e) {
			e.printStackTrace();
		}*/
		String name = sc.next() ;
		//判断是否存在...省略
		System.out.println("请输入你的密码:");
		String psw = sc.next();
		System.out.println("请输入你的性别:");
		String sex = sc.next();
		System.out.println("**********正在为你注册*********");
		writeUser(name,psw,sex);
	}

	private static boolean writeUser(String name, String psw, String sex) {
		List<User> list = null;
		 try {
			 list = getAllUser();
		} catch (IOException e) {
			e.printStackTrace();
		}
		int size = list.size();
		StringBuilder sbr = new StringBuilder();
		sbr.append(size+1);
		sbr.append(","+name);
		sbr.append(","+psw);
		sbr.append(","+sex);
		System.out.println("sbr="+sbr.toString());
		try {
			bw.write(sbr.toString());
			bw.newLine();
			bw.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return true; 
	}
	private static boolean login() {
		System.out.println("********请输入你的账号和密码进行登录*******");
		System.out.println("请输入你的账号:");
		Scanner sc = new Scanner(System.in);
	    String name = sc.next();
	    System.out.println(name);
		System.out.println("请输入你的密码:");
		String pwd = sc.next();
		System.out.println(pwd);
		List<User> list = null;
		try {
			 list = getAllUser();
		} catch (IOException e) {
			e.printStackTrace();
		} 
		if(list!=null && list.size()!=0){
			for(User u : list){
				if(u.getName().equals(name) && u.getPsw().equals(pwd)){
					System.out.println("**********登录成功***********");
					return true;
				}
			}
		} 
		return false ;
	}
	
	private static List<User> getAllUser() throws IOException {
		close();
		init();
		List<User> list = new ArrayList<User>();
		String line = null ;
	    while((line = br.readLine())!=null){
	    	String[] arrays = line.split(",");
	    	User user = new User();
	    	user.setId(Integer.parseInt(arrays[0]));
	    	user.setName(arrays[1]);
	    	user.setPsw(arrays[2]);
	    	user.setSex(arrays[3]);
	    	list.add(user);
	    }
		return list;
	}
}


分享到:
评论

相关推荐

    基于Java Swing实现的日历记事本系统【源码+报告文档】

    本项目是一套基于Java Swing实现的日历记事本系统,主要针对计算机相关专业的正在学习java的学生与需要项目实战练习的Java学习者。 包含:项目源码、报告文档等。 项目都经过严格调试,确保可以运行! 该系统功能...

    Java+AWT/Swing+Oracle数据库购电影票系统(MIS)

    该电影票管理系统采用Oracle数据库+JDBC+JavaSE中逻辑、条件判断、IO流、File、集合、AWT、Swing等技术,实现了管理端对电影相关信息(宣传图、电影名、时长、上映时间、描述...)的上传与电影院影厅的排场与用户...

    Thinking in Java 中文第四版+习题答案

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    java 编程入门思考

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    毕业设计【众筹系统项目】基于java+jsp+jdbc+html+jq+js开发的众筹系统

    如从前台用户注册-登录-发起众筹-支持项目-个人中心,再到后台的项目管理审核-用户管理-订单管理,实现了完整的功能流程闭环。 同时项目结构分层清晰易懂,程序基于轻量化的设计理念没有额外无关的依赖项,运行方便...

    Java初学者入门教学

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    java联想(中文)

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    JAVA_Thinking in Java

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    Thinking in Java简体中文(全)

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    java自学之道

    第2章 Java经典练习题 2.1 斐波那契数列 2.2 判断素数 2.3 水仙花数 2.4 分解质因数 2.5 杨辉三角 2.6 学习成绩查询 2.7 求最大公约数与最小公倍数 2.8 完全平方数 2.9 统计字母、空格、数字和其它字符个数 2.10 求...

    疯狂JAVA讲义

    学生提问:为什么选择设置用户变量,用户变量和系统变量有什么区别呢? 11 1.5 第一个Java程序 12 1.5.1 编辑Java源代码 12 1.5.2 编译Java程序 13 学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件...

    Think in Java(中文版)chm格式

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    ThinkInJava

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     本书非常适合Java的初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Java程序员参考、查阅。 目 录 第1篇 Java语法与面向对象技术 第1章 开发环境的应用 2 1.1 Java环境 3 实例001 下载JDK开发...

    thinkinjava

    第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...

Global site tag (gtag.js) - Google Analytics