public Choice getChoice() {
// TODO Auto-generated method stub
File f=new File("C:\Myitems\user.txt");
BufferedReader br=null;
String str=null;
Choice ci=null;
try {
br=new BufferedReader(new FileReader(f));
str=br.readLine();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(GetUserInfo.getUserLimit(str));
String s1=GetUserInfo.getUserLimit(str);
if((GetUserInfo.getUserLimit(str)).equals("普通用户")){
ci= new OrdinaryUserChoice();
}
else if((GetUserInfo.getUserLimit(str)).equals("管理员")){
ci= new AdminUserChoice();
}
return ci;
}
中间的打印语句已经打印出管理员了, 但是为什么最后返回的ci还是空值呢?该怎么改啊~~~~~挺急的~~~~
.getUserLimit是怎么调用的,是不是每调用一次,就会往下读取,多次调用,后续调用就读不到用户了。
可能是字符编码问题,你可以调试一下,在调试窗口试一下GetUserInfo.getUserLimit(str).equals("管理员")是不是返回值为false。
你看看user.txt文件中文字前后是否有空格?最有效的解决方式就是在“String s1=GetUserInfo.getUserLimit(str);”这句加断点,看看输出是什么?
应该是字符串出来问题,Debug调试一下