package PropertyDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Enumeration; import java.util.Properties; public class PropertyDemo { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //****************************************************************************** Properties pro=new Properties(); File file=new File(".//property.properties"); FileInputStream in=new FileInputStream(file); InputStreamReader re=new InputStreamReader(in);//因为不加这个代码会出现中文乱码的情况
//设置为true是因为 不问直接覆盖文件 哦才能够末尾增加 Writer w =new FileWriter(file,true); if(file.exists()){ System.out.println("exists"); pro.load(re); //pro.setProperty("add","value");//增加一个键值
//增加的时候一定要写完所有的参数,不然他插入的时候会默认的插入上一个值的参数, //比如你这一次没有插入name参数 ,他插进去会默认给你插上一次的name参数 pro.put("name","石臻臻");//增加一个键值 pro.put("age","200");//增加一个键值 pro.put("sex","男");//增加一个键值 pro.store(w,"");
System.out.println(pro.getProperty("name")); //输出方法一 pro.list(System.out); //输出方法二:遍历属性集 Enumeration e=pro.propertyNames(); while(e.hasMoreElements()){ String key=e.nextElement().toString(); System.out.println(key+pro.getProperty(key)); } } //******************************************************************** Properties pro2=new Properties(); File file2=new File(".//proteryXml2.xml"); //关于读取xml文件乱码的情况是,xml里面的ecoding的编码格式一定要是和你文本格式一样 //比如你xml ecoding=“utf-8" 你这个文件一定要是utf-8的编码格式 FileInputStream in2=new FileInputStream(file2); System.out.println(in2); if(in2!=null){
//如果往文件再增加xml数据 就读取不出来 总是报错,不知道什么原因 System.out.println("exists"); pro2.loadFromXML(in2); pro2.list(System.out); } } }
</pre><pre class="java" name="code">xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "<a target=_blank href="http://java.sun.com/dtd/properties.dtd">http://java.sun.com/dtd/properties.dtd</a>"> <properties> <comment>test XML</comment> <entry key="name">hello</entry> <entry key="value">world</entry> <entry key="attr">test</entry> </properties>
</pre><pre class="java" name="code">
注意你的保存的编码和ecoding编码要一致