Java任务:缓存购物车
来自CloudWiki
Java任务:缓存购物车
当退出程序的时候,需要实现缓存购物车中数据,完成效果如图6-5所示。
图6-5 缓存购物车中数据的文件
当登录后需要读取缓存文件数据,此时若在控制台显示,完成效果如图6-6所示。
图6-6 读取缓存购物车数据的文件并输出显示
任务实现
将上个实训中的UserDao用文件存储的形式实现,其余不变。
文件存储类UserDaoFile
package dao; import java.io.*; import entity.*; public class UserDaoFile implements UserDao { /** * 定义常量用于缓存文件的路径。 */ public static String FILE_PATH = "cache/"; public static String FILE_NAME ="user.txt"; public UserDaoFile() { } /** * 用于向文件存储中添加用户 */ public void addUser(User user) { String cache = ""; Boolean success= true; cache += (user.getId()+" "+user.getName()+" "+user.getPassword()+" \n"); try(FileWriter fw = new FileWriter(FILE_PATH+FILE_NAME,true); BufferedWriter bw = new BufferedWriter(fw);){ bw.write(cache); bw.newLine(); }catch(Exception e){ System.out.println("出现异常:"+e); success=false; } if(success) { System.out.println("用户 "+user.getName() +" 注册成功"); System.out.println(); } } /** * 查询文件存储中的用户 */ public void queryUser( ){ Boolean success=true;//用于标识文件读取是否成功 System.out.println("本店现有如下用户:"); //userset.getUser(); try (FileReader fr = new FileReader(FILE_PATH+"/"+FILE_NAME); BufferedReader br = new BufferedReader(fr)) { while (br.ready()) { System.out.println(br.readLine()); } }catch(Exception e){ System.out.println("出现异常:"+e); success=false; } if(success) { System.out.println("用户信息读取成功!"); System.out.println(); } System.out.println(); } //查询某个用户是否存在 public boolean hasUser(String name){ Boolean success=false;//用于标识是否登录成功 try (FileReader fr = new FileReader(FILE_PATH+"/"+FILE_NAME); BufferedReader br = new BufferedReader(fr)) { while (br.ready()) { String UserInfo =br.readLine(); if(UserInfo.contains(name)){ success=true;//找到相关用户 break; } } }catch(Exception e){ System.out.println("出现异常:"+e); success=false; } return success; } /** * 登录验证,判断用户名与密码是否存在 * * @param name 用户输入的登录账号 * @param pwd 用户输入的登录密码 * @return 登录信息有效:返回用户对象,否则返回NULL */ public boolean verify(String name, String pwd){ boolean success=false;//用于标识是否登录成功 try (FileReader fr = new FileReader(FILE_PATH+"/"+FILE_NAME); BufferedReader br = new BufferedReader(fr)) { while (br.ready()) { String UserInfo =br.readLine(); if(UserInfo.contains(name)){ String[] info = UserInfo.split(" "); if(info[2].equals(pwd)){//验证密码是否相符 success=true; } } } }catch(Exception e){ System.out.println("出现异常:"+e); success=false; } return success; } }
业务逻辑类UserService
将红框内代码做如下改动:
返回 Java程序设计