图
终于到了用户信息类验证类
为什么现在写, 因为功能 写完了, 之前不写,怕边写边改会出很多问题
先说验证类Check
我们看一下图, 我们在除了菜单的所有界面都需要进行信息验证
此类我们写了6个验证方法,分别对应了6种验证
1. 在登录时, 验证账号密码是否正确
2. 在注册时 验证账号是否存在
3. 在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致
4. 各种输入金额页面,判断金额是否合法
5. 登录时验证用户名和密码是否为中文
6. 注册时验证姓名是否为中文
先说下 BufferedReader和FileReader
FileReader : 字符流
BufferedReader : 也是字符流,但是在BufferedReader可以先把数据放到一个缓存区里,然后在进行处理,而且在BufferedReader 里有一个readLine()方法。
所谓缓冲区,就是能够一次性读取一块缓冲区大小的数据,再从缓冲区中去读取数据,而不用一点一点地直接从硬盘中抽取数据。
我们主要用readline方法
如果不懂输入输出流的先去看一下
另外对中文的操作不熟悉,请移步
http://blog.csdn.net/changjiale110/article/details/78915969
下面只写方法(函数), 就不列完整的了
方法都在Check类中包含
public class Check {
}
1. 在登录时, 验证账号密码是否正确
String 型数组message将分割后的每个信息 存储起来
从message[0] ~ message[4] 存储信息分别为
姓名, 身份证号, 账户名, 密码,余额
按行读取, 验证是否提取信息验证
/**
* 在登录时, 验证账号密码是否正确
*/
public boolean check1(String countname,String pwd) throws IOException{
File file=new File("Message.txt"); //创建文件类
if(!file.exists()||file.isDirectory()) //判断文件是否存在
//throw new FileNotFoundException();
file.createNewFile();
BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
String temp=null;
// StringBuffer sb=new StringBuffer();
temp=br.readLine(); //先读取一行
while(temp!=null){
String sbstring = temp.toString(); //转化为string
int n = sbstring.length(); //测字符串长度
String []message = new String[5]; //按~拆分 成5个字符串数组,按账号和密码进行信息验证
int k=0;
for (int i=0; i<5; i++)
message[i]="";
//我们在写入账户时用~分割, 所以我们利用~在分割开来
for (int i=0; i<n; i++)
{
if(sbstring.charAt(i)=='~')
{
//System.out.println("@"+message[k]);
k++;
}
else
{
message[k] += sbstring.charAt(i);//读取第String的第i个字符
}
}
if (countname.equals(message[2])&&pwd.equals(message[3]))//比较账户密码是否相等
return true;
temp=br.readLine(); //读取下一行
}
return false;
}
- 在注册时 验证账号是否存在
原理和上面一样 直接看代码
//在注册时 验证账号是否存在
public boolean check2(String countname) throws IOException{
File file=new File("Message.txt"); //创建文件类
if(!file.exists()||file.isDirectory()) //判断文件是否存在
file.createNewFile();
BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
String temp=null;
// StringBuffer sb=new StringBuffer();
temp=br.readLine(); //先读取一行
while(temp!=null){
String sbstring = temp.toString(); //转化为string
int n = sbstring.length(); //测字符串长度
String []message = new String[5]; //按~拆分 成5个字符串数组,按账号和密码进行信息验证
int k=0;
for (int i=0; i<5; i++)
message[i]="";
for (int i=0; i<n; i++)
{
if(sbstring.charAt(i)=='~')
{
//System.out.println("@"+message[k]);
k++;
}
else
{
message[k] += sbstring.charAt(i);
}
}
if (countname.equals(message[2]))
return true;
temp=br.readLine();
}
return false;
}
3. 在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致
主要操作差别几乎都是最后一行
if (name.equals(message[0])&&userid.equals(message[1])&&countname.equals(message[2]))
return message[3];
验证是否匹配, 如果匹配返回 密码
//在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致
public String check3(String name, String userid,String countname) throws IOException{
File file=new File("Message.txt"); //创建文件类
if(!file.exists()||file.isDirectory()) //判断文件是否存在
file.createNewFile();
BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
String temp=null;
// StringBuffer sb=new StringBuffer();
temp=br.readLine(); //先读取一行
while(temp!=null){
String sbstring = temp.toString(); //转化为string
int n = sbstring.length(); //测字符串长度
String []message = new String[5]; //按~拆分 成5个字符串数组,按账号和密码进行信息验证
int k=0;
for (int i=0; i<5; i++)
message[i]="";
for (int i=0; i<n; i++)
{
if(sbstring.charAt(i)=='~')
{
//System.out.println("@"+message[k]);
k++;
}
else
{
message[k] += sbstring.charAt(i);
}
}
if (name.equals(message[0])&&userid.equals(message[1])&&countname.equals(message[2]))
return message[3];
temp=br.readLine();
}
return null;
}
4. 各种输入金额页面,判断金额是否合法
判断每个字符串是否存在中文
//判断金额是否合法
public boolean checkmoney(String money)
{
for(int i=0; i<money.length(); i++)
{
if (money.charAt(i)<'0'||money.charAt(i)>'9')
return false;
}
return true;
}
5. 登录时验证用户名和密码是否为中文
//验证用户名和密码是否为中文
public boolean checkcountname(String countname)
{
Pattern p = Pattern.compile(“[\u4e00-\u9fa5]”);
Matcher m = p.matcher(countname);
if (m.find()) {
return true;
}
return false;
}
6. 注册时验证姓名是否为中文
//验证姓名是否为中文
public boolean checkname(String name)
{
int n = 0;
for(int i = 0; i < name.length(); i++) {
n = (int)name.charAt(i);
if(!(19968 <= n && n <40869)) {
return false;
}
}
return true;
}
JAVA小项目-银行管理系统(图形化界面)1-菜单
http://blog.csdn.net/changjiale110/article/details/78880024
JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
http://blog.csdn.net/changjiale110/article/details/78896168
JAVA小项目-银行管理系统(图形化界面)3-登录与查询
http://blog.csdn.net/changjiale110/article/details/78916391
JAVA小项目-银行管理系统(图形化界面)4-验证
http://blog.csdn.net/changjiale110/article/details/78916497
JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
http://blog.csdn.net/changjiale110/article/details/78926473
JAVA小项目-银行管理系统(图形化界面)6-存款与取款
http://blog.csdn.net/changjiale110/article/details/78926600
JAVA小项目-银行管理系统(图形化界面)7-改密与转账
http://blog.csdn.net/changjiale110/article/details/78955018
整体项目演示+源码包
http://blog.csdn.net/changjiale110/article/details/78955353