求前辈给我看看为什么的我查询出了点问题
// main 方法
package pack;
public class Action {
public static void main(String[] args) {
adminUser adminuserxx = new adminUser();
adminuserxx.adminuser();
Menu m = new Menu();
m.menu();
}
}
//———————————————————登录界面————————————————————————————
package pack;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
public class adminUser {
public void adminuser(){
String userr;
String password;
Properties por = new Properties();
try {//读入admin.properties这个文件
FileInputStream fis = new FileInputStream("D:\\login.com.ittop\\src\\pack\\admin.properties");
por.load(fis); //将fis这个对象添加到por里面
System.out.println("============Login User============");
int cont=0; //给计数器一个默认的值 0
boolean isContinue = true;
LL:while(cont<3 && isContinue){ //循环 当cont < 3 并且 的时候跳出整个循环
Scanner sc = new Scanner(System.in); //new一个Scanner对象用来接收用户输入的值
System.out.print("请输入用户名:"); //提示输入用户名
userr= sc.nextLine(); //把输入的值赋值给定义的userr
String ID = por.getProperty(userr+".name"); //admin 里面的 name值 赋值给ID
if(userr.equals(ID)){ //如果userr == ID
int cc = 0;
while(cc<3 && isContinue){//如果cc<3 并且 isContinue为true
System.out.print("请输入用户密码:"); //提示输入用户密码
password=sc.nextLine();//把用户输入的值 传给 password
if(password.equals(por.getProperty(password+".pasword"))){//如果用户输入的值==ps
System.out.println("密码正确、登陆成功");//提示密码正确
isContinue = false;
break ;//中断
}else{//否则
System.out.println("密码错误");//提示密码错误
}
cc++;
if(cc == 3){
System.out.println("抱歉、输入错误已经超过3次 账户已冻结!");
break LL; //中断 LL 这个while 循环
}
}
}else{
System.out.println("登陆失败");//提示登录失败
}
cont++;//每次计数器+1
if(cont==3){
System.out.println("抱歉、输入错误已经超过3次 账户已冻结!");
}
}
}
catch (FileNotFoundException e) {//异常类型
System.out.println("抱歉,系统找不到 文件!");//异常的处理结果
}
catch(IOException e){//异常类型
System.out.println("抱歉,出现IO异常!");//异常处理结果
}
}
}
//——————————————————用户管理界面——————————————————
package pack;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
public class Menu {
public void menu(){
try {
int cont=0;
while(cont<1){
Properties por = new Properties();
System.out.println("**************欢迎进入用户管理**************");
System.out.println("请输入1-4数字来进行操作");
System.out.println("1【添加用户】");
System.out.println("2【查询用户】");
System.out.println("3【修改用户】");
System.out.println("4【退出管理】");
System.out.println("----------------操作界面--------------------");
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要操作的编号:");
int numboer = sc.nextInt();
String name,pas,Tb,se;
switch (numboer) {
case 1:
Scanner scc = new Scanner(System.in);
System.out.print("请编辑用户名:");
String userser = scc.nextLine();
por.setProperty(userser+".name", userser); //把用户输入的信息添加给por
System.out.print("请编辑您的密码:");
String passworld = scc.nextLine();
por.setProperty(passworld+".pas",passworld); //把用户输入的密码添加给por
System.out.print("请编辑您的电话:");
String Tble = scc.nextLine();
por.setProperty(Tble+".Tb",Tble);// 把用户输入的电话信息添加给 por
System.out.print("请编辑您的性别:");
String sex = scc.nextLine();
por.setProperty(sex+".se",sex);
FileOutputStream fio = new FileOutputStream("D:\\login.com.ittop\\src\\pack\\Userr.properties");
por.store(fio,null);//把por里面的内容通过fio这个输出流写到文件里面去
fio.close();
System.out.println("添加用户信息成功!");
break;
//***********************查询*****************************
case 2:
FileInputStream fis = new FileInputStream("D:\\login.com.ittop\\src\\pack\\Userr.properties");
por.load(fis);
System.out.println("输入用户名:");
Scanner sccc = new Scanner(System.in);
String ee = sc.nextLine();
por.getProperty(ee+".se");
por.getProperty(ee+".Tb");
System.out.println(por.getProperty(ee+".se"));
System.out.println(por.getProperty(ee+".Tb")); //为什么我这两行输出来的是null空值呢 不应该啊
System.out.println("这是您查询的信息");
break;
case 3:System.out.println("欢迎进入用户修改界面");break;
case 4:System.out.println("欢迎再次使用谢谢!");System.exit(0);break;
default:System.out.println("非常抱歉!您输入的数字无效请重新输入!");
}
}
} catch (FileNotFoundException e) {
System.out.println("没有找到此文件!");
} catch (IOException e) {
System.out.println("传输错误!");
}
}
}
为什么 在我添加了 用户信息后 在查询的时候 出来的是null 空值呢 不解 求解释一下 菜鸟在此 谢谢了
[解决办法]
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;import java.util.Scanner;public class Menu { public void menu() { try { int cont = 0; while (cont < 1) { Properties por = new Properties(); System.out.println("**************欢迎进入用户管理**************"); System.out.println("请输入1-4数字来进行操作"); System.out.println("1【添加用户】"); System.out.println("2【查询用户】"); System.out.println("3【修改用户】"); System.out.println("4【退出管理】"); System.out.println("----------------操作界面--------------------"); Scanner sc = new Scanner(System.in); System.out.print("请输入你要操作的编号:"); int numboer = sc.nextInt(); String name, pas, Tb, se; switch (numboer) { case 1: // ***********************插入***************************** FileInputStream fis1 = new FileInputStream(new File("User.properties")); por.load(fis1); fis1.close(); Scanner scc = new Scanner(System.in); String userser = null; while(true){//判断用户名是否重复 System.out.print("请编辑用户名:"); userser = scc.nextLine(); if(por.getProperty(userser+".name") == null){ por.setProperty(userser + ".name", userser); // 把用户输入的信息添加给por break; } System.out.println("用户名已存在!"); } System.out.print("请编辑您的密码:"); String passworld = scc.nextLine(); por.setProperty(passworld + ".pas", passworld); // 把用户输入的密码添加给por System.out.print("请编辑您的电话:"); String Tble = scc.nextLine(); por.setProperty(Tble + ".Tb", Tble); // 把用户输入的电话信息添加给 por System.out.print("请编辑您的性别:"); String sex = scc.nextLine(); por.setProperty(sex + ".se", sex); FileOutputStream fio = new FileOutputStream( "User.properties"); por.store(fio,null); //把por里面的内容通过fio这个输出流写到文件里面去 fio.close(); System.out.println("添加用户信息成功!"); break; // ***********************查询***************************** case 2: FileInputStream fis = new FileInputStream(new File("User.properties")); por.load(fis); fis.close(); System.out.println("输入用户名:"); Scanner sccc = new Scanner(System.in); String ee = sccc.nextLine(); String sex1 = por.getProperty(ee + ".se"); String tel = por.getProperty(ee + ".Tb"); System.out.println(sex1); System.out.println(tel); //为什么我这两行输出来的是null空值呢 System.out.println("这是您查询的信息"); break; case 3: System.out.println("欢迎进入用户修改界面");//待扩展? break; case 4: System.out.println("欢迎再次使用谢谢!"); System.exit(0); break; default: System.out.println("非常抱歉!您输入的数字无效请重新输入!"); } } } catch (FileNotFoundException e) { System.out.println("没有找到此文件!"); } catch (IOException e) { System.out.println("传输错误!"); } }}