这几天无所事事,实习的日子里,没人管只能自己看看乱七八糟不知道能不能用的到得东西,可能这些东西一个月以后也就不记得了,可能也用不了那么长时间也就忘了,所以把他写下来以便以后可以有个查看的依据,以及对现在这段时间的一个回忆,实习中的第二周,无聊的日子中。。。。。。。虚度着。。。。
下面就是正式来说操作属性文件吧,第一次完整的接触属性文件是在学习Struts中的i18n中的属性文件,隐约记得属性文件的转换都是通过配置文件来读取的,不需要用java代码直接去操作,也就没怎么在意现在就来说说用java怎么来操作
首先介绍一个java.uitl.Properties类,他是继承了Hashtable类的同时还实现了Map接口,那么很明显他就是一个容器,把他当做一个容器来用就可以了,Properties他要来操作文件那么不可避免的要和java的io流有交集了吧,所以他里面的一部分方法就是和io流打交道的了,这么想来他也就不是那么难了。下面看两个例子:
1、读取属性文件中的信息
package com.isoftstone.propertiesfile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class ReadInfoFile
{
public static void main(String[] args)
{
Properties p = new Properties();
// 注意路径
File f = new File("src/info.properties");
FileInputStream fis = null;
try
{
fis = new FileInputStream(f);
p.load(fis);
//Set<Object> keys = p.keySet();
//遍历所有key-value
for(Object key : p.keySet())
{
System.out.println(key + " = " + p.get(key));
}
//根据具体key获取值
String str = p.getProperty("first");
System.out.println("first = " + str);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try
{
if(fis != null)
{
fis.close();
fis = null;
}
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
属性文件:
first=wangwuyi
second=wangluojisuanji
third=isoftstone
2、修改信息
注意:修改前先要读取也就是load一下
package com.isoftstone.propertiesfile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
/**
* 修改先要读取load
* @author wangwuyi
*
*/
public class WriteInfoFile {
public static void main(String[] args) {
Properties p = new Properties();
File f = new File("src/info.properties");
FileOutputStream fos = null;
FileInputStream fis = null;
try {
fos = new FileOutputStream(f,true);
fis = new FileInputStream(f);
p.load(fis);
// 要添加的内容
p.setProperty("fourthly", "hainabaichuan");
//修改第二个key-value
p.setProperty("second", "huluobo");
//存入文件
p.store(fos, "");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
if(fis != null)
{
fis.close();
fis = null;
}
if(fos != null)
{
fos.close();
fos = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
java读取操作属性文件就简单的记到这里!