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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨浩 于 2013-1-31 21:40 编辑
  1. public class Demo {
  2.         public static void main(String[] args) throws IOException {
  3.                 FileInputStream fis = new FileInputStream("<span class="string"><font color="#0000ff">prop.properties</font></span>");
  4.                 Properties prop = new Properties();
  5.                 prop.load(fis);
  6.                 System.out.println(prop.getProperty("1"));
  7.         }
  8. }
复制代码
prop.properties文件里内容是
1 = 测试代码
-----------------------------------------------
问题解决了。上面我搞的时候,是只用记事本写了内容然后保存的文件。。。忽略了一些事情

因为load和store方法都是按照ISO-8859-1的编码方式读写属性流文件的,而ILatin1 的字符和某些特殊字符,而对于非Latin1 的字符和某些特殊字符,则要使用与字符和字符串字面值所用的类似转义序列,以值和元素的形式来表示它们。所以当我们在处理中文时,不可以在直接修改属性文件时,将中文的值赋予给属性,而是要在JAVA程序中通过setProperty方法给属性赋予中文的值,因为这样store会将中文转换成 unicode码,在读取时系统会将读取到的unicode码按系统的编码打印出来,对于中文系统,通常是GBK码,这样中文才能够正常显示。

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

2 个回复

倒序浏览
在eclipse或者meyeclipse编辑 不会出现 ,用其他工具的时候注意文件的保存编码 utf-8 gbk 要统一 一般系统默认是gbk
回复 使用道具 举报
杨杨 发表于 2013-1-31 19:30
在eclipse或者meyeclipse编辑 不会出现 ,用其他工具的时候注意文件的保存编码 utf-8 gbk 要统一 一般系统 ...

在eclipse里面创建properties,记事本打开看到是unicode编码方式的十六进制。。
如果外部直接记事本编辑的不行,这是因为properties的getProperty方法,内部自动进行了编码转换吧。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马