textfileuserdao.java

来自「在学习完JAVA基础后,做的一个小小的项目.一个简单的聊天程序.呵呵,看看吧,那」· Java 代码 · 共 69 行

JAVA
69
字号
package server.dao;
import java.util.*;
import java.io.*;

import server.model.User;
public class TextFileUserDAO implements UserDAO{
	String fileName;

	public TextFileUserDAO(String fileName) {
		this.fileName = fileName;
	}
	
	//读取fileName文本文件,把每一行用冒号解析出来,构造User对象,放在集合里
	public Map<String, User> getAllUsers() {
		Map<String,User> users=new HashMap<String,User>();
		try{
			FileReader fr=new FileReader(fileName);
			BufferedReader in=new BufferedReader(fr);
			String s;
			while((s=in.readLine())!=null){
				StringTokenizer st=new StringTokenizer(s,":");
				String userName=st.nextToken();
				String password=st.nextToken();
				String name=st.nextToken();
				String classNumber=st.nextToken();
				String email=st.nextToken();
				String phone=st.nextToken();
				User u=new User(userName,password,name,classNumber,email,phone);
				users.put(userName,u);
			}
			in.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		return users;
	}

	public List<User> getAllUsersByClassNumber(String classNumber) {
		Map<String,User> users=getAllUsers();
		List<User> l=new ArrayList<User>();
		Set<String> userNames=users.keySet();
		for(String s:userNames){
			User u=users.get(s);
			if (classNumber.equals(u.getClassNumber())){
				l.add(u);
			}
		}
		return l;
	}
	
	//一切正常,返回true,出现异常返回false
	public boolean saveUser(User u) {
		try {
			FileOutputStream fo=new FileOutputStream(fileName,true);
			PrintWriter out=new PrintWriter(fo);
			out.println(u.toString());
			out.close();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
	
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?