Java IO流案例:使用IO流的形式完成简单的登录注册功能
程序员文章站
2022-07-06 16:32:52
1.public interface UserDao {// 注册方法public abstract void regist(String username,String password);// 登录方法public abstract boolean login(String username,String password);}2.public class UserUaoImpl implements UserDao {// static:静态代码块只能访问静态...
1. 分析:
- 定义一个接口:一个注册方法,一个登录方法
- 接口实现类:代码实现具体的方法
- 测试类:完成注册登录功能
2. UserDao接口
public interface UserDao {
// 注册方法
public abstract void regist(String username,String password);
// 登录方法
public abstract boolean login(String username,String password);
}
3. UserUaoImpl实现类
public class UserUaoImpl implements UserDao {
// static:静态代码块只能访问静态变量
private static File f = null;
// 定义静态代码块:随着类的加载即可创建文件(用于存储用户名和密码数据)
static {
f = new File("user.txt");
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 重写注册方法
@Override
public void regist(String username, String password) {
try {
// 创建字符输出缓冲流,用于注册数据的写入
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
// 将用户名和密码以连接符拼接,便于登录时信息的验证
bw.write(username + "=" + password);
bw.newLine();
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 重写登录方法
@Override
public boolean login(String username, String password) {
try {
// 创建字符输入缓冲流,用于登录数据的读出
BufferedReader br = new BufferedReader(new FileReader(f));
String str = br.readLine();
// 将读出来的数据按照连接符进行分割,用于区分用户名和密码信息
String[] split = str.split("=");
if (username.equals(split[0]) && password.equals(split[1])) {
return true;
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
}
4. UserTest测试类
public class UserTest {
public static void main(String[] args) {
// 创建接口实现类对象
UserUaoImpl impl = new UserUaoImpl();
// 键盘录入:IO流的形式
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true) {
System.out.println("------------欢迎使用本平台------------");
System.out.println("1.注册");
System.out.println("2.登录");
System.out.println("3.退出");
System.out.println("请输入您要选择的业务编号:");
try {
String line = br.readLine();
// 根据业务编号进行程序选择
switch(line) {
case "1":
System.out.println("请输入您要注册的账户:");
String name = br.readLine();
System.out.println("请输入您要注册的密码:");
String password = br.readLine();
impl.regist(name, password);
System.out.println("恭喜您,注册成功!");
break;
case "2":
System.out.println("请输入您要登录的账户:");
String name2 = br.readLine();
System.out.println("请输入您要登录的密码:");
String password2 = br.readLine();
boolean login = impl.login(name2, password2);
if (login) {
System.out.println("登录成功!");
// JVM退出,程序结束
System.exit(0);
} else {
System.out.println("您输入的账户或密码有误!");
}
break;
case "3":
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
本文地址:https://blog.csdn.net/Acybee/article/details/107268239
上一篇: javascript学习全过程-----js学习笔记(4)------函数(上)
下一篇: 丑数