小技巧之保存Properties文件的中文显示
小技巧admin 发布于:2016-06-04 00:09:19
阅读:loading
最近在用swing做一个小程序,为了图省事儿直接采用Properties文件的方式配置了一些参数,部分参数是用户通过界面直接可更改的,更改完之后再覆盖这个文件中的相关参数,此为背景。
一直知道Properties类中有个storeToXML的函数是将键值对的熟悉转换为xml文件,今天看了下store的函数,试了下是将属性写入一个文件中,我这里当然还是写到properties文件中去。properties类型的文件应该都很属性,作为Java默认的配置文件类型,任何一个项目中也应该有很多很多地方用到了此类型的文件,不废话了,主要想说一下store函数的两种方式,看函数的参数类型,一个类型传入FileWriter类型,另一个传入OutputStream类型,用的少,就先使用FileWriter类型做了更改,发现会将数据写入配置文件中,也包括中文参数,我们将写入的文件用记事本打开查看发现文件中也确实显示是中文,而实际上properties中的中文应该是转换成assic了,程序里面再用properties读取该文件发现使用FileWriter写入的方式就读取成乱码了而使用OutputStream的方式则读取正常。
package cn.chendd.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class PropertiesTest {
public static void main(String[] args) throws IOException {
Properties props = new Properties();
props.setProperty("hello1", "world");
props.setProperty("hello2", "世界");
//第一种方式回写属性文件
props.store(new FileWriter(new File("d:\\tt\\test1.properties")), null);
//第二种方式回写文件
props.store(new FileOutputStream(new File("d:\\tt\\test2.properties")), null);
}
}
点赞