您好,登錄后才能下訂單哦!
今天學的是用戶登錄注冊功能。
4個包:
itcast.cn.user包 User.java 用戶類,描述用戶基本信息,包括成員變量,無參構造函數,帶參構造(可有可無).get和set方法
package itcast.cn.day22; /* * 用戶基本描述包類 */ public class User { private int userName; private int passWord; public User(){ super(); } public User(int userName,int passWord){ super(); this.userName=userName; this.passWord=passWord; } public int getUserName() { return userName; } public void setUserName(int userName) { this.userName = userName; } public int getPassWord() { return passWord; } public void setPassWord(int passWord) { this.passWord = passWord; } }
tcast.cn.uerDao包 UserDao.java 定義一個接口,聲明登錄注冊功能
public interface UserDao { 2 public abstract boolean islogin( String userName, String passWord); 3 public abstract void register(User user); 4 }
itcast.cn.userDaoImpl包 UserDaoImpl.java 實現UserDao接口,具體描述登錄注冊方法。
需要注意的是:在登錄方法中,返回值boolean flag = true 即登錄成功
在實現過程中需要注意的一點是:全局變量br,bw的聲明一定要放在try大括號外
IO版本實現方法代碼如下:
public class UserDaoImpl implements UserDao{ @Override public boolean islogin(String userName, String passWord) { boolean flag = false; BufferedReader br = null; try { br = new BufferedReader(new FileReader("user,txt")); String line = null; while((line=br.readLine())!=null){ String[] datas = line.split("="); if(datas[0].equals(userName)&&datas[1].equals(passWord)){ flag = true; break; } } } catch (FileNotFoundException e) { //e.printStackTrace(); System.out.println("用戶信息獲取失敗"); }catch (IOException e) { //e.printStackTrace(); System.out.println("用戶登錄失敗"); } if(br!=null){ try { br.close(); } catch (IOException e) { //e.printStackTrace(); System.out.println("用戶釋放資源失敗"); } } return flag; } @Override public void register(User user) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("user.txt")); bw.write(user.getUserName()+"="+user.getPassWord()); bw.newLine(); } catch (IOException e) { //e.printStackTrace(); System.out.println("注冊失敗"); }finally{ if(bw!=null){ try { bw.close(); } catch (IOException e) { //e.printStackTrace(); System.out.println("注冊釋放資源失敗"); } } } 57} }
itcast.cn.usertest包 UserTest類 測試類
在這個類中,存在一個未解決的問題:
scanner函數無法一個一個的輸入,另外構造方法中的(true)需要多看。
package itcast.cn.day22; import java.util.Scanner; public class UserTest { public static void main(String[] args) { //歡迎界面 while(true){ UserDao ud = new UserDaoImpl(); System.out.println("*****歡迎進入*****"); System.out.println("登錄請輸入1"); System.out.println("注冊請輸入2"); System.out.println("返回請輸入3"); System.out.println("請輸入你的選擇:"); Scanner sc = new Scanner(System.in); int choice = sc.nextInt(); switch(choice){ case 1: System.out.println("*****登錄界面*****************"); //Scanner sc1 = new Scanner(System.in); System.out.println("請輸入用戶名:"); String userName = sc.nextLine(); System.out.println("請輸入密碼:"); String passWord = sc.nextLine(); boolean flag = ud.islogin(userName, passWord); if(flag){ System.out.println("登錄成功"); break; }else{ System.out.println("用戶名或密碼錯誤"); } case 2: System.out.println("*****注冊界面****************"); System.out.println("請輸入用戶名:"); String userName1 = sc.nextLine(); System.out.println("請輸入密碼:"); String passWord1 = sc.nextLine(); User user = new User(); user.getUserName(); user.getPassWord(); ud.register(user); System.out.println("注冊成功"); break; case 3: default: System.out.println("謝謝使用,歡迎下次再來"); System.exit(0); break; } } } }
以上這篇基于IO版的用戶登錄注冊實例(Java)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。