首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

BufferedReader读取文本 首行多一个‘?’解决办法

2012-12-30 
BufferedReader读取文本 首行多一个‘?’ BufferedReader br new BufferedReader(new InputStreamReader(n

BufferedReader读取文本 首行多一个‘?’

 
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
---------------------------------------------------------------------
求指教,这是为何?


[解决办法]
楼主的文件时什么编码?怎么创建的?
[解决办法]
发来文件看看,nmyangym@126.com
[解决办法]
嗯,是不是你文件的问题?直接用记事本建文件(避免使用其他的什么文本编辑器)。
[解决办法]
我去试了哈发现,我的没得错误
可能是你自己的编译器有问题
[解决办法]
试过了 你的代码没问题 应该是其他原因
[解决办法]
很显然是文件编码的问题。
建议用UltraEdit或者notepad ++ 把F:/users.txt这个文件的编码格式改为UTF-8 without BOM,保存后试试。
[解决办法]
引用:
很显然是文件编码的问题。
建议用UltraEdit或者notepad ++ 把F:/users.txt这个文件的编码格式改为UTF-8 without BOM,保存后试试。


?是windows下面的BOM头。

热点排行