Java中Properties的用法

本文介绍如何使用Java的Properties类来读取和写入.properties及.xml文件。通过具体实例展示了加载文件、解决乱码问题、写入文件等关键步骤。

Properties可以读取和写入xxx.props文件,写可以读取和写入xml文件,下面给出实例:

package com.test02;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.util.Properties;

/**
 * 测试Properties类的读写properties和xml文件
 */

public class TestProperties {
	
	/**
	 * 测试读取properties文件
	 * 时间:2015-4-10 下午2:01:08
	 * @throws Exception
	 */
	public void testReadProperties() throws Exception {
		Properties prop = new Properties();
		FileInputStream fis = new FileInputStream(new File("D:\\00_tools\\00_javatest\\properties.txt"));
		prop.load(fis);	//读properties
		String gender = prop.getProperty("gender");
		gender = new String(gender.getBytes("ISO-8859-1"),"GBK");	//解决读乱码
		System.out.println(gender);
		prop.list(System.out);
	}
	
	/**
	 * 测试写入properties文件
	 * 时间:2015-4-10 下午2:16:04
	 */
	public void testWriteProperties() {
		Properties prop = new Properties();
		prop.setProperty("id", "110");
		prop.setProperty("itcode", "zhangsan");
		prop.setProperty("district", "苏州街");
		
		try {
			PrintStream ps = new PrintStream(new File("D:\\00_tools\\00_javatest\\testWriteProperties.txt"));
			prop.list(ps);	//写properties
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 测试读取xml文件
	 * 时间:2015-4-10 下午3:02:31
	 * @throws Exception
	 */
	public void testReadXml() throws Exception{
		Properties prop = new Properties();
		ByteArrayInputStream bais = new ByteArrayInputStream(xmlStr.getBytes());
		prop.loadFromXML(bais);	//读xml
		prop.list(System.out);
	}
	
	/**
	 * 测试写入xml文件
	 * 时间:2015-4-10 下午3:07:06
	 */
	public void testWriteXml()  {
		Properties prop = new Properties();
		prop.setProperty("id", "119");
		prop.setProperty("name", "李四");
		
		try {
			PrintStream ps = new PrintStream(new File("D:\\00_tools\\00_javatest\\testWriteXml.xml"));
			prop.storeToXML(ps, "test");	//写xml
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	public static void main(String[] args) throws Exception{
		TestProperties test = new TestProperties();
		System.out.println("---------  基于properties文件的读  -----------");
		test.testReadProperties();
		System.out.println("---------  基于properties文件的写  -----------");
		test.testWriteProperties();
		System.out.println("写入成功");
		System.out.println("---------  基于xml文件的读  -----------");
		test.testReadXml();
		System.out.println("---------  基于xml文件的写  -----------");
		test.testWriteXml();
	}
	
	
	private static String xmlStr = 
			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
			"<!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\">" +
			"<properties>" +
				"<comment>Hi</comment>" +
				"<entry key=\"foo\">bar</entry>" +
				"<entry key=\"fu\">baz</entry>" +
			"</properties>";
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值