java基础的一个小问题 希望来名大神帮忙!!!急!!!

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调试一下