读取properties配置⽂件中⽂乱码
开发java项⽬时的配置⽂件:配置⽂件位于src同级⽬录(即:将项⽬打包为jar包后,配置⽂件与jar包应放于同⼀⽂件夹中)
//配置⽂件编码utf-8
//读取配置⽂件中⽂字符不需要重新编码
Properties properties=new Properties();
String Property("user.dir")+"\\office.properties";
InputStream url=new FileInputStream(propStr);
properties.load(new InputStreamReader(url));
//写⼊配置⽂件需要转码
properties.store(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(propStr)))), "utf-8");
开发Java web项⽬时的配置⽂件:配置⽂件位于src⽬录下描写学习的成语
//配置⽂件编码utf-8
//读取配置⽂件中⽂需要重新编码
Properties properties = new Properties();
InputStreamReader inStream=new InputStreamReader(ClassLoader().getResourceAsStream("dao.properties"),"utf-8");
properties.load(inStream);//BaseDao为当前类
⼀、加载路径以及乱码问题
⼀般配置⽂件放在项⽬结构的src⽬录下,在eclipse开发环境开发Java web项⽬加载该配置⽂件的⽅法为:
Properties properties=new Properties();
/
/加载配置⽂件
那又如何 歌词InputStream url=ClassLoader().getResourceAsStream("office.properties");
properties.load(new InputStreamReader(url));
有时候这样的问题在于读取中⽂字符时会乱码(特别是在开发java项⽬的时候)
虽然在往配置⽂件中添加数据之前,已经将配置⽂件编码属性修改为utf-8,但是任不可避免的会产⽣乱码问题。这是由于配置⽂件的加载默认是以ISO-8859-1编码进⾏,所以在读取其数据时要进⾏转码
String value=new Property(key).getBytes("ISO-8859-1"),"utf-8");
但是将配置⽂件⽅于src⽬录下的⽅式只适合于java web开发,在jar程序开发中不能⽤,因为jar程序中的配置⽂件⼀般都是放于程序外部,让使⽤者可以修改相关配置。将配置⽂件置于src⽬录下会导致jar可执⾏程序在eclipse中加载成功,但在window 将配置⽂件放于项⽬之下与src同级⽬录,在eclipse开发环境中加载该配置⽂件的⽅法为:
Properties properties=new Properties();
//获得配置⽂件⽬录
String Property("user.dir")+"\\*.properties";
InputStream url=new FileInputStream(propStr);
properties.load(new InputStreamReader(url));
对于properties.load()⽹上有的说法为:
properties.load(new Bytes("ISO-8859-1"),"utf-8"));
第⼀种load(没有进⾏转码)的做法前提是配置⽂件属性已经被设置为utf-8
第⼆种load(进⾏了转码)的做法前提是配置⽂件没有进⾏过属性修改(即默认编码为ISO-8859-1)
起亚k3说明书且两种做法不能互换,设置了编码为utf-8就不能使⽤第⼆种⽅式,默认ISO-8859-1的情况下就不能直接使⽤第⼀种⽅式
在进⾏jar可运⾏程序开发中,如果将配置⽂件放于与src同级⽬录,即:
导出项⽬后:
这种情况下对配置⽂件的读取和写⼊操作:
第⼀种:
//配置⽂件编码utf-8
//读取配置⽂件不需要转码
Properties properties=new Properties();
String Property("user.dir")+"\\office.properties";
InputStream url=new FileInputStream(propStr);
海底两万里好词好句properties.load(new InputStreamReader(url));
//写⼊配置⽂件需要转码
properties.store(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(propStr)))), "utf-8");
第⼆种:
兴高采烈//配置⽂件编码ISO-8859-1
//读取配置⽂件需要转码
Properties properties=new Properties();
String Property("user.dir")+"\\office.properties";北京食品
InputStream url=new FileInputStream(propStr);
properties.load(new Bytes("ISO-8859-1"),"utf-8"));
//写⼊配置⽂件不需要转码
properties.store(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(propStr)))));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论