一、代码展示
1.Dao包
1.1用户注册
//用户的注册
public static boolean userRegister(String username, String psw) {
FileReader fr = null;
//创建字符输出流对象
FileWriter fw = null;
//创建字符缓冲输入流对象
BufferedReader br = null;
//创建字符缓冲流输出流对象
BufferedWriter bw = null;
//判断username和密码是否已经存在
boolean isNameExits = false;
boolean isPswExits = false;
//判断是否已经有一个账户被注册
boolean isUserRegister = false;
//判断是否注册成功
boolean isRegisterExcessful = false;
try {
String path = "D:\\code\\skshw\\src\\user.txt";
fr = new FileReader(path);
fw = new FileWriter(path, true);
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
//临时变量,存储文档的每行内容
String temp = "";
//获取用户名 在文本第一行!
while ((temp = br.readLine()) != null) {
if (temp != null) {
isUserRegister = true;
}
if (temp.equals("username=" + username)) {
//判断用户名和密码是否已存在
isNameExits = true;
}
}
if (isNameExits == false && isUserRegister == false) {
//如果文档为空且用户名不存在,则注册用户名和密码
bw.write("username=" + username);
bw.newLine();
bw.write("password=" + psw);
bw.flush();
isRegisterExcessful = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
if (fw != null) {
fw.close();
}
if (fr != null) {
fr.close();
}
if (bw != null) {
bw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//如果用户名已经存在,返回false
if (isNameExits) {
return false;
}
return isRegisterExcessful;
}
1.2用户登录
//用户登录
public static boolean userLogin(String username, String psw) {
boolean rst = false;
BufferedReader br = null;
String line = null;
boolean uB = false;
boolean pB = false;
try {
FileReader fr = new FileReader("D:\\code\\skshw\\src\\user.txt");
br = new BufferedReader(fr);
//br = new BufferedReader(new FileReader("D:\\code\\skshw\\src\\user.txt"));
while ((line = br.readLine()) != null) {
if (line.equals("username=" + username)) {
uB = true;
}
if (line.equals("password=" + psw)) {
pB = true;
}
}
if (uB && pB) {
rst = true;
}
br.close();
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
return rst;
}
1.3修改密码
public static boolean userChangePsw(String oldPsw, String newPsw) {
RandomAccessFile raf = null;
FileWriter fw = null;
boolean isOldPsw = false;//是否和原密码一致
boolean isChangedPsw = false;//是否修改成功
try {
String path = "D:\\code\\skshw\\src\\user.txt";
raf = new RandomAccessFile(path, "r");
String firstR = raf.readLine();//读取txt第一行
String temp = "";
while ((temp = raf.readLine()) != null) {
if (temp.equals("password=" + oldPsw)) {
isOldPsw = true;
}
}
if (isOldPsw) {
//如果和原密码一致则修改新密码
fw = new FileWriter(path);
fw.write(firstR);
fw.write("\r\n");
fw.write("password=" + newPsw);
fw.flush();
isChangedPsw = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (raf != null)
raf.close();
if (fw != null)
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
1.4用户注销(删除用户)
//注销
public static boolean userDelete() {
FileReader fr = null;
FileWriter fw = null;
boolean isDeleted = false;
try {
String path = "D:\\code\\skshw\\src\\user.txt";
fr = new FileReader(path);
int temp = 0;
if ((temp = fr.read()) != -1) {
//清空文件内容,因为FileWrite默认是覆盖内容的
fw = new FileWriter(path);
isDeleted = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return isDeleted;
}
}
1.5Dao整体代码
package Dao;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.RandomAccessFile;
/*
*
* 对文档进行操作获取并实现修改密码和用户名等操作
*/
public class UserDao {
//用户的注册
public static boolean userRegister(String username, String psw) {
FileReader fr = null;
//创建字符输出流对象
FileWriter fw = null;
//创建字符缓冲输入流对象
BufferedReader br = null;
//创建字符缓冲流输出流对象
BufferedWriter bw = null;
//判断username和密码是否已经存在
boolean isNameExits = false;
boolean isPswExits = false;
//判断是否已经有一个账户被注册
boolean isUserRegister = false;
//判断是否注册成功
boolean isRegisterExcessful = false;
try {
String path = "D:\\code\\skshw\\src\\user.txt";
fr = new FileReader(path);
fw = new FileWriter(path, true);
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
//临时变量,存储文档的每行内容
String temp = "";
//获取第一行用户名
while ((temp = br.readLine()) != null) {
if (temp != null) {
isUserRegister = true;
}
if (temp.equals("username=" + username)) {
//判断用户名和密码是否已经存在
isNameExits = true;
}
}
if (isNameExits == false && isUserRegister == false) {
//如果文档为空且用户名不存在,则注册用户名和密码
bw.write("username=" + username);
bw.newLine();
bw.write("password=" + psw);
bw.flush();
isRegisterExcessful = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
if (fw != null) {
fw.close();
}
if (fr != null) {
fr.close();
}
if (bw != null) {
bw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//如果用户名已经存在,返回false
if (isNameExits) {
return false;
}
return isRegisterExcessful;
}
//用户登录
public static boolean userLogin(String username, String psw) {
boolean rst = false;
BufferedReader br = null;
String line = null;
boolean uB = false;
boolean pB = false;
try {
FileReader fr = new FileReader("D:\\code\\skshw\\src\\user.txt");
br = new BufferedReader(fr);
//br = new BufferedReader(new FileReader("D:\\code\\skshw\\src\\user.txt"));
while ((line = br.readLine()) != null) {
if (line.equals("username=" + username)) {
uB = true;
}
if (line.equals("password=" + psw)) {
pB = true;
}
}
if (uB && pB) {
rst = true;
}
br.close();
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
return rst;
}
//修改密码
public static boolean userChangePsw(String oldPsw, String newPsw) {
RandomAccessFile raf = null;
FileWriter fw = null;
boolean isOldPsw = false;//是否和原密码一致
boolean isChangedPsw = false;//是否修改成功
try {
String path = "D:\\code\\skshw\\src\\user.txt";
raf = new RandomAccessFile(path, "r");
String firstR = raf.readLine();//读取txt第一行
String temp = "";
while ((temp = raf.readLine()) != null) {
if (temp.equals("password=" + oldPsw)) {
isOldPsw = true;
}
}
if (isOldPsw) {
//如果和原密码一致则修改新密码
fw = new FileWriter(path);
fw.write(firstR);
fw.write("\r\n");
fw.write("password=" + newPsw);
fw.flush();
isChangedPsw = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (raf != null)
raf.close();
if (fw != null)
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
//注销
public static boolean userDelete() {
FileReader fr = null;
FileWriter fw = null;
boolean isDeleted = false;
try {
String path = "D:\\code\\skshw\\src\\user.txt";
fr = new FileReader(path);
int temp = 0;
if ((temp = fr.read()) != -1) {
//清空文件内容,因为FileWrite默认是覆盖内容的
fw = new FileWriter(path);
isDeleted = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return isDeleted;
}
}
2.Servlet包
2.1Main方法
public static void main(String[] args) {
UserServlet userServlet = new UserServlet();
boolean check = true;
do {
menu();
System.out.println("please input choice");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
switch (choice)
{
case 1:
register();
break;
case 2:
login();
break;
case 3:
userChangePsw();
break;
case 4:
userDelete();
break;
case 0:
check = false;
break;
}
}while (check);
}//用菜单的形式调用其他函数实现用户注册、登录、修改密码和注销的功能
2.2调用的整体代码
package servlet;
import Dao.UserDao;
import java.util.Scanner;
/*
调用Dao中的方法实现功能
*/
public class UserServlet {
public static void main(String[] args) {
UserServlet userServlet = new UserServlet();
boolean check = true;
do {
menu();
System.out.println("please input choice");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
switch (choice)
{
case 1:
register();
break;
case 2:
login();
break;
case 3:
userChangePsw();
break;
case 4:
userDelete();
break;
case 0:
check = false;
break;
}
}while (check);
}
public static void register() {
//注册新用户
String username = "";
String password = "";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入注册用户名:");
username = scanner.nextLine();
System.out.println("请输入注册的密码");
password = scanner.nextLine();
if (UserDao.userRegister(username, password)) {
System.out.println("注册成功");
} else {
System.out.println("注册失败");
}
System.out.println("----------------");
}
public static boolean login() {
//用户登录
boolean rst = false;
String userName = null;
String psw = null;
UserDao userDao = new UserDao();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
userName = scanner.nextLine();
System.out.println("请输入密码:");
psw = scanner.nextLine();
if (UserDao.userLogin(userName,psw)) {
System.out.println("成功登录!");
} else {
System.out.println("登录失败,请重新输入!");
}
//校验用户名密码
rst = userDao.userLogin(userName, psw);
return rst;
}
public static void userChangePsw() {
//修改密码
String oldPsw = "";
String newPsw1 = "";
String newPsw2 = "";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入原始密码:");
oldPsw = scanner.nextLine();
System.out.println("请输入新的密码!");
newPsw1 = scanner.nextLine();
System.out.println("请再次输入!");
newPsw2 = scanner.nextLine();
if (newPsw2.equals(newPsw1)) {
if (UserDao.userChangePsw(oldPsw, newPsw2)) {
System.out.println("修改失败!");
} else {
System.out.println("您已经成功修改密码!");
}
} else {
System.out.println("修改失败,请保持两次密码一致!");
}
System.out.println("----------------");
}
public static void userDelete() {
if (UserDao.userDelete()) {
System.out.println("成功注销!");
} else {
System.out.println("注销失败!");
}
System.out.println("---------------");
}
static void menu(){
System.out.println("----1:注册新用户------");
System.out.println("----2:用户登录-------");
System.out.println("----3:修改用户密码----");
System.out.println("----4:用户注销-------");
System.out.println("----0:退出菜单----");
}
}
二、功能演示
IO流基本实现
2615

被折叠的 条评论
为什么被折叠?



