Java任务:缓存购物车

来自CloudWiki
跳转至: 导航搜索

Java任务:缓存购物车

当退出程序的时候,需要实现缓存购物车中数据,完成效果如图6-5所示。

Java6-4.png

图6-5 缓存购物车中数据的文件

当登录后需要读取缓存文件数据,此时若在控制台显示,完成效果如图6-6所示。

Java6-5.png

图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

将红框内代码做如下改动:

Java6-18.png

返回 Java程序设计