练习java文档Properties

补充:Properties
变量
defaults 是protected修饰,所以无法访问
构造器
properties()
properties(size)
properties(default)这个构造器不会用
方法

getProperty() 如果没有第二个参数,而且那个键对应的为空,就会返回null
list() 其中PrintWriter版本的方法,没有输出
load() 是在原本的基础上添加,不会删除原有的键值对,如果导入相同的键,则一最后一个键为准。使用这个会乱码,要用native2acill处理,我还不会,还有疯狂java书上说,java9之后只需要将properties文件保存为utf-8就不用native了,可是我使用了一下,依旧是乱码,不知道为什么
loadFromXML() 使用这个xml导如包含中文值不会乱码
propertyNames()
save()方法已经弃用了,就不练习了
setProperty() 返回的Object不理解
store() 用这样的办法存入properties的中文,是已经转成ascii的样式了
storeToXML()
stringPropertyNames() 如果尚未从主属性列表中找到同名的键,则在默认属性列表中包括不同的键。这一句话看不懂

import java.util.*;
import java.io.*;
public class Test
{
	public static void main(String[] args) throws Exception
	{
		//System.out.println(Properties.defaults);

		//构造器
		Properties pro = new Properties();
		pro = new Properties(10);
		
		pro.setProperty("name","孙悟空");
		System.out.println("名字:"+pro.getProperty("name"));
		System.out.println("性别:"+pro.getProperty("gender"));

		pro.setProperty("gender","男");
		PrintStream ps = new PrintStream(new File("C:\\Users\\李毛睿\\Desktop\\测试\\a.properties"));
		pro.list(ps);
		
		PrintWriter pw = new PrintWriter("C:\\Users\\李毛睿\\Desktop\\测试\\a2.properties");
		pro.list(pw);

		System.out.println(pro.getProperty("name"));

		FileInputStream fis = new FileInputStream("C:\\Users\\李毛睿\\Desktop\\测试\\prop.properties");
		pro.load(fis);
		System.out.println("名字:"+pro.getProperty("name"));
		System.out.println("标题:"+pro.getProperty("title"));

		BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\李毛睿\\Desktop\\测试\\pro.properties"));
		pro.load(br);
		System.out.println("火焰:"+pro.getProperty("fire"));

		//
		Properties p1 = new Properties();
		fis = new FileInputStream("C:\\Users\\李毛睿\\Desktop\\测试\\pro.xml");
		p1.loadFromXML(fis);
		System.out.println("看看foo:"+p1.getProperty("foo"));
		System.out.println("看看fu:"+p1.getProperty("fu"));

		fis = new FileInputStream("C:\\Users\\李毛睿\\Desktop\\测试\\pro2.properties");
		p1.load(fis);
		System.out.println("看看ah:"+p1.getProperty("ah"));

		Enumeration<String> e = (Enumeration<String>) p1.propertyNames();
		while(e.hasMoreElements())
		{
			System.out.println("e:"+e.nextElement());
		}

		var value = p1.setProperty("oo","o.o");
		System.out.println(value);

		value = p1.setProperty("z","z.z");
		System.out.println(value);
		
		FileOutputStream fos = new FileOutputStream("C:\\Users\\李毛睿\\Desktop\\测试\\p12.properties");
		p1.store(fos,"FileOutputStream");

		FileWriter fw = new FileWriter("C:\\Users\\李毛睿\\Desktop\\测试\\p1.properties");
		p1.store(fw,"FileWriter");

		ps = new PrintStream("C:\\Users\\李毛睿\\Desktop\\测试\\p1.xml");
		p1.storeToXML(ps,"哈哈");

		fis = new FileInputStream("C:\\Users\\李毛睿\\Desktop\\测试\\p12.properties");
		Properties p2 = new Properties();
		p2.load(fis);
		System.out.println("看看提取的ah:"+p2.getProperty("ah"));
		System.out.println("看看提取的fu:"+p2.getProperty("fu"));

		ps =new  PrintStream("C:\\Users\\李毛睿\\Desktop\\测试\\p1.xml");
		p1.storeToXML(ps,"PrintStream2","utf-8");

		for(String s: p1.stringPropertyNames())
		{
			System.out.println(s);
		}

 	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值