黑马程序员技术交流社区
标题: Properties 运用 [打印本页]
作者: 尹善波 时间: 2012-7-19 23:32
标题: Properties 运用
//Properties 运用
import java.io.*;
import java.util.*;
class PropertiesDemo1
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo() throws IOException
{
Properties prop =new Properties();
//FileInputStream fis=new FileInputStream("D:\\test2.java");//创建的这个对象有什么用
//只是读取,可能是空文件啊?
//prop.load(fis); 说是将输入流中的数据加载到集合中,在下面也没见应用,这两个问题该怎么理解?
prop.setProperty("wangwu","49");
FileOutputStream fos=new FileOutputStream("d:\\info.txt");
prop.store(fos,"haha");
sop(prop);
prop.list(System.out);
fos.close();
//fis.close();
}
}
//注释的部分不用对程序有什么影响?
作者: 陈欢 时间: 2012-7-19 23:40
本帖最后由 陈欢 于 2012-7-19 23:43 编辑
load ( InputStream inStream) ,从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test2.java 文件)进行装载来获取该文件中的所有键 - 值。其实就是读取文件的一行数据,因为数据的规则都是以Key=value的形式存在的。所以读取一行数据后,可以通过“=”对该行数据进行split,完成后左边为key,右边为value,存储到Properties。
作者: rslheima 时间: 2012-7-20 00:02
import java.io.*;
import java.util.*;
class PropertiesDemo1
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo() throws IOException
{
Properties prop =new Properties();
//FileInputStream fis=new FileInputStream("D:\\test2.java");//读取该文件的内容,为空则prop中没有内容(要读进来必须是key=value的形式)
//prop.load(fis); //这句话的意思是先把文件中的键值对读进来,如果你再添加或修改,就会在他的基础上进行,
prop.setProperty("wangwu","49");
FileOutputStream fos=new FileOutputStream("d:\\info.txt");
prop.store(fos,"haha");
sop(prop);
prop.list(System.out);
fos.close();
//fis.close();
}
}
//如果你注释掉的话,不影响使用,效果和D:\\test2.java中的内容为空一样
建议你把D:\\test2.java 中的内容写成键值对形式,在比较,就一目了然了(例如:张三=22)
作者: 张莹莹 时间: 2012-7-20 00:19
Properties的源代码见附件(Properties.png)
Properties的作用是读取项目配置文件
//FileInputStream fis=new FileInputStream("D:\\test2.java");//创建的这个对象有什么用
//只是读取,可能是空文件啊?
外部的文件就是存放的是配置类型的文件,相当于
key1=value1
key2=value2
//prop.load(fis); 说是将输入流中的数据加载到集合中,在下面也没见应用,这两个问题该怎么理解?
通过load方法可以从外部载入配置文件信息,然后可以做修改,修改完毕后在通过load方法将配置信息重新写回到文件中,供下一次系统启动时使用
举个例子:
你用户第一次设置好声音的大小为50,等他关掉程序,下一次在启动的时候你不从文件中load,你就不知道用户上一次设置的声音大小是多少
package com.yy.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class Test {
public static void main(String[] args) {
Properties prop = new Properties();
try {
// 打开配置文件
FileInputStream fis = new FileInputStream("D:\\test.txt");
// 载入配置文件
prop.load(fis);
// 关闭文件
fis.close();
// 读取保存在文件中的声音大小
String voice = (String) prop.get("voice");
// 显示声音大小
System.out.println("当前声音大小为:" + voice);
// 修改声音大小
prop.setProperty("voice", "100");
// 打开配置文件
FileOutputStream fos = new FileOutputStream("D:\\test.txt");
// 保存修改到文件
prop.store(fos, "Change the voice");
// 关闭文件
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果见附件
-
Properties.png
(7.36 KB, 下载次数: 19)
Properties
-
初始值.png
(16.45 KB, 下载次数: 30)
初始值
-
运行后.png
(14.62 KB, 下载次数: 23)
运行后
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |