通过IO流实现简单的账户操作

需要实现的功能:

注册、登录、改密、注销。

下面直接展示代码:

注册功能:

先判断项目文件下的txt文件(用户的信息)是否存在,若不存在,则创建txt文件,写入用户信息完成注册。若存在,对其内容进行读取,若文件内无内容,就将用户信息写入,完成注册,若文件内有内容,则提示已有账号。

public boolean userRegister(String name,String psd) {
	boolean reg=false;
	BufferedReader br=null;
	FileWriter fw=null;
	File f=null;
	try {
		f=new File("C:/Users/87549/eclipse-workspace/worh/user.txt");
		if(!f.exists()) {
			f.createNewFile();
			fw=new FileWriter("C:/Users/87549/eclipse-workspace/worh/user.txt");
			fw.write("username="+name+"\n");
			fw.write("password="+psd);
			fw.flush();
			reg=true;
			System.out.println("注册成功");
		}else {
		br=new BufferedReader(new FileReader("C:/Users/87549/eclipse-workspace/worh/user.txt"));
	String temp="";
	if((temp=br.readLine())==null) {
		fw=new FileWriter("C:/Users/87549/eclipse-workspace/worh/user.txt");
		fw.write("username="+name+"\n");
		fw.write("password="+psd);
		fw.flush();
		reg=true;
		System.out.println("注册成功");	
	}else {
		System.out.println("您已有账户,请登录");
	}
		}
	} catch (Exception e) {
		// TODO: handle exception
	}finally {
		try {
			if(br!=null) {
				br.close();
			}
			if(fw!=null)
				fw.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
	return reg;
}

登录功能:

用户从键盘输入用户名和密码,将其与文件内的用户信息比较,若相同则返回true 登陆成功

否则返回false登陆失败。(如果存放用户信息的文件不存在,则提示还未注册)

public boolean userLogin(String username,String psd) {
	boolean rs = false;
	boolean us = false;
	boolean ps = false;
	File f=null;
	BufferedReader br=null;
	try {
		f=new File("C:/Users/87549/eclipse-workspace/worh/user.txt");
		if(!f.exists()) {
			System.out.println("还未注册,请注册");
			return rs;
		}
		br=new BufferedReader(new FileReader("C:/Users/87549/eclipse-workspace/worh/user.txt"));
		String temp="";
		while((temp=br.readLine())!=null) {
			if(temp.equals("username="+username)) {
				us=true;
			}
			if(temp.equals("password="+psd)) {
				ps=true;
			}
		}
		if(us&&ps) {
			rs=true;
		}
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		
			try {
				if(br!=null) {
				br.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	return rs;
}

修改密码:

RandomAccessFile可实现对文件的修改等多种操作。

具体看   http://t.csdn.cn/2REFD

public boolean changePsd(String oldpsd,String newpsd){
	boolean rs=false;
	RandomAccessFile raf=null;
	try {
		raf=new RandomAccessFile("C:/Users/87549/eclipse-workspace/worh/user.txt","rw");
		String lin=null;
		long lastpoint=0;
		while((lin=raf.readLine())!=null) {
			final long point=raf.getFilePointer();
			if(lin.contains(oldpsd)) {
				String str=lin.replace(oldpsd, newpsd);
				raf.seek(lastpoint);
				raf.writeBytes(str);
				rs=true;
				System.out.println("修改成功!");
			}lastpoint=point;
		}
	
	} catch (Exception e) {
		// TODO: handle exception
	}finally {
		try {
			if(raf!=null) {
				raf.close();
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
	return rs;
}

注销功能:

public boolean withdraw() {
	boolean rs=false;
	File f=new File("C:/Users/87549/eclipse-workspace/worh/user.txt");
	rs=f.delete();
	return rs;
}

主函数和其他代码:

public static void main(String[] args) {	
	select();
	}
	

public boolean Register() {
	boolean rs=false;
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入用户名:");
	String str=sc.next();
	System.out.println("请输入密码:");
	String psd=sc.next();
	UserDao ud=new UserDao();
	rs=ud.userRegister(str, psd);
	return rs;
}
public boolean Login() {
	boolean T=false;
	UserDao ud=new UserDao(); 
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入用户名");
	String name=sc.nextLine();
	System.out.println("请输入密码");
	String pasd=sc.nextLine();
	 T=ud.userLogin(name, pasd);
	return T;
}

public boolean Change() {
	boolean T=false;
	UserDao ud=new UserDao();
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入旧密码");
	String old=sc.next();
	System.out.println("请输入新密码");
	String new1=sc.next();
	T=ud.changePsd(old, new1);
	return T;
}
public boolean delete() {
	boolean rs=false;
	UserDao ud=new UserDao();
	rs=ud.withdraw();
	return rs;
}
public static void select() {
	UserServlet us=new UserServlet();
	while(true) {
	System.out.println("请选择操作:");
	System.out.println("   注册账号");
	System.out.println("   登陆账号");
	System.out.println("   退出程序");
	Scanner sc=new Scanner(System.in);
	String select=sc.next();
	switch(select) {
		case "注册账号":
			us.Register();
			 break;
		case "登陆账号":
			if(!us.Login()) { 
				System.out.println("登陆失败");
				break;
			}
			System.out.println("登陆成功,请继续操作:");
				System.out.println("修改密码");
				System.out.println("注销账户");
				String s=sc.next();
			switch(s) {
			case "修改密码":
				us.Change();
				System.out.println("请重新登录:");
				break;
			case "注销账户":
				System.out.println("成功注销");
					us.delete();
				break;
			
		}
		break;	
	case "退出程序":
		     return;
	}
}
}
}

操作演示:

QQ录屏20220705135429

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大狗晋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值