62,628
社区成员
发帖
与我相关
我的任务
分享
package ListRegisterIO;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
public class UserInterface {
//声明全局对象
private UserManagerByMap um;
//静态化文本数据库
private static final String Save_Path="F://testStu.save";
public UserInterface(){
try {
//检测是否有文件夹
File CheckFile = new File(Save_Path);
if (!CheckFile.exists()) {
//如果没有则创建
CheckFile.createNewFile();
um = new UserManagerByMap();
System.out.println("你是第一次使用我们的系统");
} else {
//从文件流中加载对象
LoadUserManagerObject();
System.out.println("系统加载完成");
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
private UserManagerByMap LoadUserManagerObject() {
// TODO Auto-generated method stub
//输入对象
ObjectInputStream ois =null;
try {
//从文件中加载对象
ois=new ObjectInputStream(new BufferedInputStream(new FileInputStream(Save_Path)));
//将读取到的对象强制转换成UserManagerByMap 对象
UserManagerByMap um=(UserManagerByMap) ois.readObject();
return um;
}catch(EOFException e){
//如果存在担对象加载为空 则返回一个新对象
return new UserManagerByMap();
}catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(ois!=null){
try {
ois.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}
private void save(){
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(Save_Path)));
oos.writeObject(um);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if (oos!= null) {
oos.close();
}
} catch (IOException e3) {
System.out.println("错误01:");
}
}
}
public void run(){
BufferedReader br = null;
br= new BufferedReader(new InputStreamReader(System.in));
String str = null;
showInfo();
try {
while ((str = br.readLine()) != null) {
if(str.equalsIgnoreCase("Q")){
System.out.println("谢谢使用");
break;
}else if(str.equalsIgnoreCase("A")){
add(br);
}else if(str.equalsIgnoreCase("B")){
delete(br);
}else if(str.equalsIgnoreCase("C")){
update(br);
}else if(str.equalsIgnoreCase("D")){
list();
}else if(str.equalsIgnoreCase("L")){
login(br);
}else if(str.equalsIgnoreCase("F")){
search(br);
}else{
System.err.println("请输入一个正确的 操作方式");
}
showInfo();
}
} catch (final Exception e) {
System.out.println(e.getMessage());
}finally{
try {
if (br!= null) {
br.close();
}
} catch(IOException e2) {
System.out.println(e2.getMessage());
}
}
}
private void login(BufferedReader br) throws IOException {
System.out.println("请输入用户名:");
String UserName = br.readLine();
System.out.println("请输入密码:");
String PassWord=br.readLine();
User u = um.login(UserName, PassWord);
System.out.println("热了欢迎"+u.getUserName());
}
private void update(BufferedReader br) throws IOException {
try {
// TODO Auto-generated method stub
System.out.println("请输入要更新的用户名:");
String UserName = br.readLine();
System.out.println("请输入新密码:");
String PassWord = br.readLine();
System.out.println("请输入新昵称:");
String NickName = br.readLine();
System.out.println("请输入新年龄:");
int Age = Integer.parseInt(br.readLine());
User u1 = new User(UserName, NickName, PassWord, Age);
um.update(u1);
System.out.println(UserName+"更新成功");
save();
} catch (NumberFormatException e) {
System.err.println("输入的年龄格式不正确");
}catch(UserException e){
System.err.println(e.getMessage());
}
}
private void delete(BufferedReader br) throws IOException {
// TODO Auto-generated method stub
System.out.println("请输入要删除的用户名:");
String username=br.readLine();
User u= um.loadUser(username);
if(u==null){
System.err.println("要删除的用户不存在");
}else{
um.Delete(username);
System.out.println(username+"删除成功");
}
save();
}
private void search(BufferedReader br) throws IOException {
System.out.println("请输入要查询的用户名:");
String username=br.readLine();
User u=um.loadUser(username);
if(u==null){
System.err.println("用户名不存在");
}else{
System.out.println(u);
}
}
private void list(){
List<User> list=um.list();
for(User u:list){
System.out.println(u);
}
}
private void add(BufferedReader br){
try {
System.out.println("请输入用户名:");
String UserName = br.readLine();
System.out.println("请输入密码:");
String PassWord=br.readLine();
System.out.println("请输入昵称:");
String NickName=br.readLine();
System.out.println("请输入年龄:");
int Age=Integer.parseInt(br.readLine());
User user=new User(UserName,PassWord,NickName,Age);
um.Add(user);
System.out.println("添加用户成功");
save();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void showInfo(){
System.out.println("请选择下列操作");
System.out.println("------------------------------------------------------------------------------------------------");
System.out.println("添加【A】 删除【B】 修改【C】 列表【D】 查询【F】 登陆【L】 退出【Q】 ");
System.out.println("------------------------------------------------------------------------------------------------");
}
}
package ListRegisterIO;
import java.io.Serializable;
import java.util.*;
public class UserManagerByMap implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
List<String> Forbid = Arrays.asList("cmb","nmb","fandong");
Map<String ,User> users;
public UserManagerByMap() {
users = new HashMap<String,User>();
}
public void Add(User user){
if(Forbid.contains(user.getNickName())){
throw new UserException(user.getUserName()+"该用户名停止注册");
}
if(users.containsKey(user.getUserName())){
throw new UserException(user.getUserName()+"已存在");
}
users.put(user.getUserName(), user);
System.out.println(user.getUserName()+"添加成功");
}
public void Delete(String userName){
if(!users.containsKey(userName)){
throw new UserException(userName+"不存在");
}
users.remove(userName);
System.out.println(userName+"删除成功");
}
public void update(User user){
if(!users.containsKey(user.getUserName())){
throw new UserException(user.getUserName()+"不存在");
}
users.put(user.getUserName(), user);
}
public User loadUser(String userName){
return users.get(userName) ;
}
public User login(String userName,String Password){
User u = loadUser(userName);
if(!users.containsKey(userName)){
throw new UserException(userName+"不存在");
}
if(!Password.equals(u.getPassWord())){
throw new UserException(userName+"密码错误");
}
System.out.println(u.getUserName()+"登陆成功");
return u;
}
public List<User> list(){
System.out.println("=======================已添加======================");
//存储用户信息
List<User> saveUser = new ArrayList<User>();
//存储用户名
Set<String> key= new HashSet<String>(users.keySet());
for(String username:key){
saveUser.add(users.get(username));
}
return saveUser;
}
}