A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flying 中级黑马   /  2014-2-21 00:27  /  1192 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下
  1.         public static void testProperty(){
  2.                 FileInputStream fis =null;
  3.                 Properties prop = null;
  4.                 try {
  5.                         fis = new FileInputStream("F:\\1.txt");
  6.                         prop=new Properties();
  7.                         prop.load(fis);
  8.                         prop.list(System.out);       
  9.                 } catch(IOException e) {
  10.                         e.printStackTrace();
  11.                 }finally{
  12.                         try {
  13.                                 if(fis!=null)
  14.                                         fis.close();
  15.                         } catch (IOException e2) {
  16.                                 e2.printStackTrace();
  17.                         }
  18.                 }
  19.         }
复制代码
1.txt里面是:
张三=12李四=15
程序运行结果是

用的字节流 按说不应该涉及 jbk utf-8等编码表的吧?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

4 个回复

倒序浏览
你的1.txt是以什么作为分隔符的?txt中有中文吗?txt文件一般不会存在编码问题,试试把eclipse工作区间改成utf-8的编码试试

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
Properties使用的是ISO 8859-1编码表输入输出,而你在记事本里写的中文,记事本编码使用的不是ISO 8859-1编码表,load读取输入流时,使用的是ISO 8859-1表。所以出现????还有配置信息使用.properties存储

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
检查下记事本另存为的时候,选择的是什么码表
回复 使用道具 举报
现在可以 用字符流读入就行了  或者字节转成字符流
  1.     public static void testProperty(){
  2.         FileInputStream fis =null;
  3.             BufferedReader bufr =null;
  4.         Properties prop = null;
  5.         FileReader fr=null;
  6.         try {
  7.                     fr = new FileReader("F:\\1.txt");
  8.                 //fis = new FileInputStream("F:\\1.txt");
  9.                // bufr= new BufferedReader(new InputStreamReader(fis,"gbk"));
  10.                 prop=new Properties();
  11.                 prop.load(fr);
  12.                 prop.list(System.out);        
  13.         } catch(IOException e) {
  14.                 e.printStackTrace();
  15.         }finally{
  16.                 try {
  17.                         if(fis!=null)
  18.                                 fis.close();
  19.                 } catch (IOException e2) {
  20.                         e2.printStackTrace();
  21.                 }
  22.         }
  23. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马