package cn.xiaodi.dao.imp;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import cn.xiaodi.dao.UserDao;
import cn.xiaodi.dao.domain.User;
public class UserDaoImp implements UserDao {
static{
//使用静态代码块创建file对象随着类的加载而加载
File file = new File("E:\\小迪好.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public boolean userLogin(String userName, String password) {
//登录的功能
boolean flag = false ;
//创建高效输入流对象
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("E:\\小迪好.txt"));
//频繁的读写
String line = null ;
//对异常进行捕获处理
try {
while ((line = br.readLine()) != null) {
String[] splits = line.split("----");
if (splits[0].equals(userName) && splits[1].equals(password)) {
flag = true;
break ;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return flag ;
}
//注册的功能
@Override
public void userRegist(User user) {
/**
* 注册: 我们需要将用户的数据通过流对象写入到一个文本文件中
* 我们现在接受的是一个User对象,而到目前为止我们没有学到对应的流把一个对象直接写入到文本文件中.
* 但是我们可以将用户的信息存储到文本文件中.而这个用户的信息有哪些呢?
* 有用户名和密码. 存储的时候我们如何进行存储.我们在存储的时候应该让一个用户的数据占一行.
* 在存储用户名和密码的时候可以指定一个规则: 比如: 用户名----密码
*/
//创建高效输出流对象
BufferedWriter bw = null ;
try {
bw = new BufferedWriter(new FileWriter("E:\\小迪好.txt" , true));
//使用if判断该用户名是否存在,若存在提示该用户名已存在,不存在则注册成功
if (!UserDaoImp.print(user)) {
String userInfo = user.getUserName() + "----" + user.getPassword();
bw.write(userInfo);
bw.newLine();
bw.flush();
System.out.println("恭喜你注册成功!!!");
}else{
System.out.println("该用户名已存在!!!");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//注册时判断是否已存在该用户的功能
public static boolean print(User user){
boolean flag = false ;
//创建一个高效输入流对象
BufferedReader br = null ;
try {
br = new BufferedReader(new FileReader("E:\\小迪好.txt"));
//使用每次读取一行
String line = null ;
while ((line = br.readLine()) != null) {
String[] strs = line.split("----");
//判断用户名是否存在
if ((strs[0].equals(user.getUserName()))) {
flag = true ;
break ;
}
}
}catch(IOException e) {
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return flag ;
}
} |