package Test;
import java.io.*;
import java.util.Scanner;
public class test2 {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws IOException {
File file = new File("user");
System.out.println("***********登录(1)********");
System.out.println("***********改密码(2)******");
System.out.println("***********退出(other)******");
int i = scanner.nextInt();
switch (i) {
case 1:
Login(file);
break;
case 2:
Alert(file);
break;
default:System.exit(0);
}
}
private static void Login(File file) throws IOException {
String s = "";
s = getFile(file);
//获取用户输入的用户名和密码
StringBuilder user = new StringBuilder();
System.out.println("请输入用户名:");
String name = scanner.next();
user.append(name).append(",");
System.out.println("请输入密码;");
String admin = scanner.next();
user.append(admin);
//判断库中是否含有输入的用户名和密码
if (s.contains(user)) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
}
/*模拟用户修改密码,让用户输入用户名,去文本文件中匹配是否有该用户名,
如果不存在则输出用户名错误,如果存在则可以修改密码,首先要先输入原密码,
如果原密码不正确则输出密码错误,如果密码正确则可以输入新密码,完成真正的密码修改。*/
private static void Alert(File file) throws IOException {
String s = getFile(file);
System.out.println("请输入用户名:");
String name = scanner.next();
if (s.contains(name)) {
System.out.println("请输入原密码:");
String admin = scanner.next();
//把输入的密码形成字符串
StringBuilder builder = new StringBuilder();
builder.append(name).append(",").append(admin);
if (s.contains(builder)) {
//获取密码前字节数
int i = s.indexOf(admin);
String sub = s.substring(0, i);
int by = sub.getBytes().length;
System.out.println("请输入新密码:");
String newAdmin = scanner.next();
RandomAccessFile accessFile = new RandomAccessFile(file, "rw");
accessFile.seek(by);
accessFile.write(newAdmin.getBytes());
System.out.println("密码更改成功!");
}
} else {
System.out.println("用户名错误!");
}
}
private static String getFile(File file) throws IOException {
//获取库用户名和密码
String root = "";
//使用文件输入流获取库内容
FileInputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
String s = new String(bytes, 0, len);
root = s;
}
inputStream.close();
return root;
}
}
模拟用户登录
最新推荐文章于 2022-04-22 22:40:01 发布
这是一个Java程序,实现了用户登录和密码修改的功能。用户可以选择登录或改密,登录时验证用户名和密码,改密时需要输入原密码并验证,然后设置新密码。程序通过Scanner读取用户输入,并使用FileInputStream读取文件中的用户数据。
摘要由CSDN通过智能技术生成