BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:/users.txt"), "utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
String[] arr = line.split(";");
User user = new User();
user.setUID(arr[0]);
user.setUName(arr[1]);
user.setUPwd(arr[2]);
users.put(user.getNo(), user);
System.out.println(user.getUID() + "," + user.getUName() + ","
+ user.getUPwd());
}---------------------------------------------------------------------------------------------------------
文本内容:
1001;fwinsky;1234
2002;fwinsky;2123
---------------------------------------------------------------------------------------------------------
问题:
读取的结果是:
?1001;fwinsky;1234
2002;fwinsky;2123
---------------------------------------------------------------------------------------------------------
求指教,这是为何?
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("c:/user.txt"), "utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
String[] arr = line.split(";");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
工程编码格式是GBK
结果:1001
fwinsky
1234
2002
fwinsky
2123
没有问题。
1001;fwinsky;1234
2002;fwinsky;2123 System.out.println(user.getUID() + "," + user.getUName() + ","
+ user.getUPwd());
读出的结果
?1001;fwinsky;1234
2002;fwinsky;2123应该是这个吧 ?1001,fwinsky,1234
2002,fwinsky,2123
我想问是不是user.getUID()打印的问号
建议用UltraEdit或者notepad ++ 把F:/users.txt这个文件的编码格式改为UTF-8 without BOM,保存后试试。