基于IO版的用戶登錄注冊(cè)實(shí)例(Java)
今天學(xué)的是用戶登錄注冊(cè)功能。
4個(gè)包:
itcast.cn.user包 User.java 用戶類,描述用戶基本信息,包括成員變量,無(wú)參構(gòu)造函數(shù),帶參構(gòu)造(可有可無(wú)).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 定義一個(gè)接口,聲明登錄注冊(cè)功能
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 實(shí)現(xiàn)UserDao接口,具體描述登錄注冊(cè)方法。
需要注意的是:在登錄方法中,返回值boolean flag = true 即登錄成功
在實(shí)現(xiàn)過(guò)程中需要注意的一點(diǎn)是:全局變量br,bw的聲明一定要放在try大括號(hào)外
IO版本實(shí)現(xiàn)方法代碼如下:
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("注冊(cè)失敗"); }finally{ if(bw!=null){ try { bw.close(); } catch (IOException e) { //e.printStackTrace(); System.out.println("注冊(cè)釋放資源失敗"); } } } 57} }
itcast.cn.usertest包 UserTest類 測(cè)試類
在這個(gè)類中,存在一個(gè)未解決的問(wèn)題:
scanner函數(shù)無(wú)法一個(gè)一個(gè)的輸入,另外構(gòu)造方法中的(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("*****歡迎進(jìn)入*****"); System.out.println("登錄請(qǐng)輸入1"); System.out.println("注冊(cè)請(qǐng)輸入2"); System.out.println("返回請(qǐng)輸入3"); System.out.println("請(qǐng)輸入你的選擇:"); 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("請(qǐng)輸入用戶名:"); String userName = sc.nextLine(); System.out.println("請(qǐng)輸入密碼:"); String passWord = sc.nextLine(); boolean flag = ud.islogin(userName, passWord); if(flag){ System.out.println("登錄成功"); break; }else{ System.out.println("用戶名或密碼錯(cuò)誤"); } case 2: System.out.println("*****注冊(cè)界面****************"); System.out.println("請(qǐng)輸入用戶名:"); String userName1 = sc.nextLine(); System.out.println("請(qǐng)輸入密碼:"); String passWord1 = sc.nextLine(); User user = new User(); user.getUserName(); user.getPassWord(); ud.register(user); System.out.println("注冊(cè)成功"); break; case 3: default: System.out.println("謝謝使用,歡迎下次再來(lái)"); System.exit(0); break; } } } }
以上這篇基于IO版的用戶登錄注冊(cè)實(shí)例(Java)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java+mysql用戶注冊(cè)登錄功能
- JAVA簡(jiǎn)單實(shí)現(xiàn)MD5注冊(cè)登錄加密實(shí)例代碼
- Java簡(jiǎn)易登錄注冊(cè)小程序
- JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能
- JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能(服務(wù)器)
- JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊(cè)
- Java實(shí)現(xiàn)多用戶注冊(cè)登錄的幸運(yùn)抽獎(jiǎng)
- Java如何優(yōu)雅的實(shí)現(xiàn)微信登錄注冊(cè)
- javaweb實(shí)現(xiàn)注冊(cè)登錄頁(yè)面
- Java實(shí)現(xiàn)登錄與注冊(cè)頁(yè)面
相關(guān)文章
java Callable接口和Future接口創(chuàng)建線程示例詳解
這篇文章主要為大家介紹了java Callable接口和Future接口創(chuàng)建線程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11SpringBoot使用jsr303校驗(yàn)的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot使用jsr303校驗(yàn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10java連接Access數(shù)據(jù)庫(kù)的方法
這篇文章主要為大家詳細(xì)介紹了java連接Access數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05詳解Idea SpringBoot搭建SpringCloud的準(zhǔn)備工作(推薦)
這篇文章主要介紹了Idea SpringBoot搭建SpringCloud的準(zhǔn)備工作(推薦),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10詳解springboot項(xiàng)目啟動(dòng)時(shí)如何排除用不到的bean
使用springboot開(kāi)發(fā)項(xiàng)目,我們有時(shí)候會(huì)排除一些項(xiàng)目里面用不到的bean,不然的話項(xiàng)目啟動(dòng)會(huì)報(bào)錯(cuò),這種情況通常是發(fā)生在什么場(chǎng)景里呢,以及如何解決呢,今天咱們就聊一聊2024-01-01