欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于IO版的用戶登錄注冊(cè)實(shí)例(Java)

 更新時(shí)間:2017年09月18日 09:08:17   作者:kamaria  
下面小編就為大家?guī)?lái)一篇基于IO版的用戶登錄注冊(cè)實(shí)例(Java)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

今天學(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java Callable接口和Future接口創(chuàng)建線程示例詳解

    java Callable接口和Future接口創(chuàng)建線程示例詳解

    這篇文章主要為大家介紹了java Callable接口和Future接口創(chuàng)建線程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Java SPI機(jī)制詳細(xì)介紹

    Java SPI機(jī)制詳細(xì)介紹

    大家好,本篇文章主要講的是Java SPI機(jī)制詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • SpringBoot使用jsr303校驗(yàn)的實(shí)現(xiàn)

    SpringBoot使用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-10
  • 值得收藏的SpringBoot 實(shí)用的小技巧

    值得收藏的SpringBoot 實(shí)用的小技巧

    最近分享的一些源碼、框架設(shè)計(jì)的東西。我發(fā)現(xiàn)大家熱情不是特別高,想想大多數(shù)應(yīng)該還是正兒八經(jīng)寫(xiě)代碼的居多;這次就分享一點(diǎn)接地氣的: SpringBoot 使用中的一些小技巧 ,需要的朋友可以參考下
    2018-10-10
  • spring boot 枚舉使用的坑整理

    spring boot 枚舉使用的坑整理

    在本篇文章里我們給大家整理了關(guān)于spring boot 枚舉使用的坑以及相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • java連接Access數(shù)據(jù)庫(kù)的方法

    java連接Access數(shù)據(jù)庫(kù)的方法

    這篇文章主要為大家詳細(xì)介紹了java連接Access數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 解決Maven多模塊編譯慢的問(wèn)題

    解決Maven多模塊編譯慢的問(wèn)題

    這篇文章主要介紹了Maven多模塊編譯慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解Idea SpringBoot搭建SpringCloud的準(zhǔn)備工作(推薦)

    詳解Idea SpringBoot搭建SpringCloud的準(zhǔn)備工作(推薦)

    這篇文章主要介紹了Idea SpringBoot搭建SpringCloud的準(zhǔn)備工作(推薦),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 使用SpringBoot生成war包的流程步驟

    使用SpringBoot生成war包的流程步驟

    一般情況下,在SpringBoot項(xiàng)目開(kāi)發(fā)完成進(jìn)行服務(wù)器部署時(shí),都是打成JAR包進(jìn)行部署運(yùn)行的,但是在有些情況下也需要將其打成War包使用Tomcat進(jìn)行部署,本篇文章就簡(jiǎn)單介紹一下SpringBoot如何打成War包,需要的朋友可以參考下
    2024-10-10
  • 詳解springboot項(xiàng)目啟動(dòng)時(shí)如何排除用不到的bean

    詳解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

最新評(píng)論