一、目录结构
二、主要方法
UserServlet
:定义用户操作,获取用户输入、选择等
package sevlet;
import dao.UserDao;
import java.util.Scanner;
public class UserServlet {
public static void main(String[] args) {
int key;
UserServlet userServlet=new UserServlet();
Scanner scanner=new Scanner(System.in);
do {
System.out.println("(1)注册账号\n(2)登录账号\n(3)修改密码\n(4)注销账号\n(5)退出");
key=scanner.nextInt();
switch (key){
case 1:
regisrer();
break;
case 2:
login();
break;
case 3:
changepsw();
break;
case 4:
withDraw();
break;
case 5:
break;
}
}while (key!=5);
}
public static boolean regisrer(){
String username=null;
String password=null;
Scanner scanner = new Scanner(System.in);
System.out.println("账号:");
username=scanner.nextLine();
System.out.println("密码:");
password=scanner.nextLine();
if(UserDao.userRegisrer(username,password)){
System.out.println("注册成功");
}
return true;
}
public static boolean login(){
String username=null;
String password=null;
Scanner scanner = new Scanner(System.in);
System.out.println("账号:");
username=scanner.nextLine();
System.out.println("密码:");
password=scanner.nextLine();
if(UserDao.userLogin(username,password)){
System.out.println("登录成功");
}
else{
System.out.println("登录失败");
}
return true;
}
public static boolean changepsw(){
String oldPsw=null;
String newPsw=null;
Scanner scanner = new Scanner(System.in);
System.out.println("初始密码:");
oldPsw=scanner.nextLine();
System.out.println("新的密码:");
newPsw=scanner.nextLine();
if(UserDao.changePsw(oldPsw,newPsw)){
System.out.println("修改成功");
}
else{
System.out.println("修改失败");
}
return true;
}
public static boolean withDraw(){
if(UserDao.withdraw()){
System.out.println("注销成功");
}
return true;
}
}
UserDao
:定义操作持久性数据的类,用于读写数据库或文档
package dao;
import org.jcp.xml.dsig.internal.dom.ApacheNodeSetData;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
//对文档操作获取和修改用户名、密码等操作
public class UserDao {
//用户的注册
public static boolean userRegisrer(String username, String psw){
BufferedWriter bw = null;
try{
bw=new BufferedWriter(new FileWriter("C:\\Users\\wdl\\Desktop\\java123\\UserDemo0703\\user.txt"));
bw.write("username="+username);
bw.newLine();
bw.write("password="+psw);
bw.flush();
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(bw!=null){
bw.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return true;
}
//用户登录
public static boolean userLogin(String username, String psw){
BufferedReader br = null;
String temp=null;
boolean uB=false;
boolean pB=false;
boolean rst=false;
try{
br=new BufferedReader(new FileReader("C:\\Users\\wdl\\Desktop\\java123\\UserDemo0703\\user.txt"));
while((temp=br.readLine())!=null){
if(temp.equals("username="+username)){
uB=true;
}
if(temp.equals("password="+psw)){
pB=true;
}
}
if(uB&&pB){
rst=true;
}
}catch(Exception e){
e.printStackTrace();
}finally {
try{
if(br!=null){
br.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return rst;
}
//修改密码
public static boolean changePsw(String oldPsw, String newPsw){
String temp=null;
String user=null;
int flag=1;
BufferedReader br=null;
BufferedWriter bw=null;
boolean rst=false;
try{
br=new BufferedReader(new FileReader("C:\\Users\\wdl\\Desktop\\java123\\UserDemo0703\\user.txt"));
while ((temp= br.readLine())!=null){
if(temp.equals("password="+oldPsw)){
rst=true;
}
if(flag==1){
user=temp;
flag++;
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(br!=null){
br.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
if(!rst){
return false;
}
try{
bw=new BufferedWriter(new FileWriter("C:\\Users\\wdl\\Desktop\\java123\\UserDemo0703\\user.txt"));
bw.write(user);
bw.newLine();
bw.write("password="+newPsw);
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(bw!=null){
bw.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return rst;
}
//注销
public static boolean withdraw(){
BufferedWriter bw = null;
try{
bw=new BufferedWriter(new FileWriter("C:\\Users\\wdl\\Desktop\\java123\\UserDemo0703\\user.txt"));
bw.write("username=");
bw.newLine();
bw.write("password=");
bw.flush();
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(bw!=null){
bw.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return true;
}
}
三、结果演示
Java IO流练习