`

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小练习

    这是一个文件操作的练习,学习者将学习到如何使用Java的`java.io`包中的File类和InputStream/OutputStream进行文件的复制,包括文件流的读写和错误处理。 通过这些小练习,初学者可以从实践中巩固JAVA基础知识,如...

    JAVA-快递管理系统-无数据库-IO

    在标签中提到了“JAVA IO 控制台输出”,这表明系统可能通过`System.out.println()`或`PrintStream`类来与用户进行交互,显示快递信息或者接收用户输入。控制台输出是开发阶段常用的调试手段,也是简单应用中常见的...

    java做的购物练习

    在本项目中,“java做的购物练习”是一个针对初学者设计的简单购物与支付系统实例,旨在帮助学习者理解和掌握Java编程语言在实际应用场景中的运用。这个小例子将涵盖多个Java编程基础和面向对象设计的核心概念。 1....

    基于IO流的简易学生管理系统

    《基于IO流的简易学生管理系统》 在计算机科学领域,数据管理是不可或缺的一部分,而学生管理系统则是一个典型的案例,用于演示如何实现简单的数据操作。在这个系统中,我们使用了Java的IO流技术来处理文本文件,...

    Java图书馆借书还书系统

    Java图书馆借书还书系统是一个基于Java编程语言开发的应用,主要设计用于模拟实际图书馆的图书借阅和归还流程。这个系统是课堂上的一个作业项目,目的是帮助学生掌握Java编程和文件操作的基本技能。通过该系统,用户...

    java语言写的超级简单的学生管理系统

    这个“java语言写的超级简单的学生管理系统”就是一个很好的实例,它主要利用了Java语言的基本特性,如IO流、集合框架等,实现了对学生的数据进行增删改查的基本功能。 首先,我们来了解一下Java IO流。在Java中,...

    java基础练习demo

    本练习集主要涵盖了Java的基础知识,包括线程、输入输出(IO)、Swing图形用户界面(GUI)以及网络编程中的Socket通信。这些知识点是任何Java开发者必备的基础技能。 首先,我们来探讨Java线程。线程是程序执行的...

    Java练习题答案

    通过这些基础练习,学习者可以逐步掌握Java的基本语法和编程技巧,为进一步深入学习Java的高级特性和框架打下坚实的基础。在实际开发中,还会涉及到异常处理、集合框架、网络编程、IO流、数据库连接、多线程同步等更...

    计算机等级考试练习系统 二级JAVA

    这个"计算机等级考试练习系统 二级JAVA"正是为备考者提供的一套专业训练工具。 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)于1995年发布。它的设计目标是具有...

    servlet简单小练习

    在这个名为“servlet简单小练习”的压缩包文件中,包含了几个关于Servlet的简单示例,包括servlet_listener、servlet_resourceaccess、servlet_filter以及一个名为“servlet”的综合练习。 1. **servlet_listener**...

    Java萌新作业 - 酒店管理系统

    总的来说,这个酒店管理系统项目涵盖了Java基础语法、面向对象设计、异常处理、文件操作(如用户信息的持久化)以及简单的业务逻辑实现等多个知识点。对于Java初学者来说,这是一个很好的实战练习,能够帮助他们巩固...

    Java 上手练习的小项目

    5. **IO流**:Java的输入输出系统支持处理文件、网络数据传输等,理解和熟练运用InputStream、OutputStream、Reader、Writer等类,能让你的程序具备数据读写能力。 6. **多线程**:Java内置了对多线程的支持,理解...

    Se简单的练习Demo备份

    5. **输入输出流**:Java的IO流系统允许程序读取和写入数据,如文件操作、网络通信等。InputStream和OutputStream是所有字节流的基类,而Reader和Writer则用于处理字符流。 6. **多线程**:Java内置对多线程的支持...

    Java简易聊天系统

    【Java简易聊天系统】是一个基于Java编程语言实现的练习项目,旨在帮助开发者巩固TCP网络通信基础知识并提升实际项目开发能力。在这个系统中,用户可以通过客户端与服务器进行实时文本聊天,体验基本的网络通信功能...

    java 版 简单的人员信息管理系统

    【标题】"java 版 简单的人员信息管理系统"是一个基于Java编程语言开发的简易信息管理软件,主要用于管理和操作人员的相关数据。这个系统可能包括添加、删除、查询和修改人员信息等功能,旨在帮助用户方便地存储和...

    作业练习题 java

    Java I/O框架提供了丰富的类来支持流的处理,这些类位于java.io包下。 2. 文件操作:文件是数据的持久化存储形式。Java通过I/O流来读写文件。读文件是将文件内容从磁盘加载到内存,而写文件则是将内存中的数据保存...

    src_java练习_源码.zip

    【描述】"src_java练习_源码.zip" 描述简单明了,直接指出了内容是Java源码的练习。这可能包括一系列独立的练习题目,或者是一个小项目的各个部分,旨在覆盖不同的Java编程概念和技术。 【标签】虽然没有提供具体的...

    java课程设计航空票务系统.zip

    "课堂案例.rar"可能是教师提供的其他相关Java编程实例,用于辅助理解和学习,如简单的数据结构示例、网络编程练习等。 总的来说,完成这个Java航空票务系统课程设计,不仅需要扎实的Java编程基础,还需要对软件...

    java基础练习上手项目

    "webshop-master"这个项目可能是一个简单的网上商城系统,是学习和应用Java基础的理想平台。在这个项目中,你将有机会接触到以下几个重要的Java知识点: 1. **面向对象编程**:Java是一种面向对象的语言,项目的...

    java初级练习项目——移动开户管理PPT学习教案.pptx

    《Java初级练习项目——移动开户管理》是一个针对初学者设计的教学案例,旨在帮助学习者掌握Java编程基础,特别是与文件I/O、对象属性以及简单业务流程处理相关的技能。以下是该项目的关键知识点: 1. **对象与类**...

Global site tag (gtag.js) - Google Analytics