import java.util.Iterator;
import java.util.Properties;
import java.util.StringTokenizer;
import java.io.*;
public class PathUtil {
private static Properties props = null;
public PathUtil(String filename) {
try {
props = this.getProperties(filename);
} catch (Exception ex) {
}
}
public PathUtil() {
}
public String getResource(String key) {
return props.getProperty(key);
}
public static void main(String[] args) {
PathUtil util = new PathUtil();
String file = "src/NC1000.properties";
try {
props = util.getProperties(file);
// 根据Key获取value
System.out.println("monitPath content is:"
+ props.getProperty("monitPath"));
// 修改value
props.setProperty("monitPath", "new monitPath");
// 根据Key再次获取value 看是否已经修改
System.out.println("monitPath content is:"
+ props.getProperty("monitPath"));
// 持久化对象到制定路径
util.setProperties(file, props);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Properties setProperties(String filename, Properties props)
throws Exception {
FileOutputStream fs = null;
Writer out = null;
try {
// 取出文件里所有的数据
File f = new File(filename);
fs = new FileOutputStream(f);
out = new BufferedWriter(new OutputStreamWriter(fs));
/*
* if(f == null ){ System.out.println("file is null"); }
*/
Iterator iterator = props.keySet().iterator();
while (iterator.hasNext()) {
// 取出每一行
String key = (String) iterator.next();
String value = props.getProperty(key);
out.write(key + "=" + value);
out.write("\r\n");
}
} catch (Exception ex) {
throw ex;
} finally {
try {
out.flush();
out.close();
fs.flush();
fs.close();
} catch (Exception ex) {
}
}
return props;
}
/**
* 读取properties文件的内容封装成properties对象
*
* @param filename
* 文件路径
* @return
* @throws Exception
*/
private Properties getProperties(String filename) throws Exception {
Properties props = new Properties();
FileInputStream fs = null;
try {
// 取出文件里所有的数据
File f = new File(filename);
fs = new FileInputStream(f);
/*
* if(f == null ){ System.out.println("file is null"); }
*/
int filesize = fs.available();
byte[] contentbytes = new byte[filesize];
fs.read(contentbytes);
String contentstr = new String(contentbytes);
// 按照行分解
StringTokenizer stoken = new StringTokenizer(contentstr, "\n\r");
while (stoken.hasMoreTokens()) {
// 取出每一行
String line = stoken.nextToken();
System.out.println("===" + line);
int parsepos = line.indexOf("=");
String key = line.substring(0, parsepos).trim();
String val = line.substring(parsepos + 1).trim();
props.put(key, val);
}
} catch (Exception ex) {
throw ex;
} finally {
try {
fs.close();
} catch (Exception ex) {
}
}
return props;
}
}
import java.util.Properties;
import java.util.StringTokenizer;
import java.io.*;
public class PathUtil {
private static Properties props = null;
public PathUtil(String filename) {
try {
props = this.getProperties(filename);
} catch (Exception ex) {
}
}
public PathUtil() {
}
public String getResource(String key) {
return props.getProperty(key);
}
public static void main(String[] args) {
PathUtil util = new PathUtil();
String file = "src/NC1000.properties";
try {
props = util.getProperties(file);
// 根据Key获取value
System.out.println("monitPath content is:"
+ props.getProperty("monitPath"));
// 修改value
props.setProperty("monitPath", "new monitPath");
// 根据Key再次获取value 看是否已经修改
System.out.println("monitPath content is:"
+ props.getProperty("monitPath"));
// 持久化对象到制定路径
util.setProperties(file, props);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Properties setProperties(String filename, Properties props)
throws Exception {
FileOutputStream fs = null;
Writer out = null;
try {
// 取出文件里所有的数据
File f = new File(filename);
fs = new FileOutputStream(f);
out = new BufferedWriter(new OutputStreamWriter(fs));
/*
* if(f == null ){ System.out.println("file is null"); }
*/
Iterator iterator = props.keySet().iterator();
while (iterator.hasNext()) {
// 取出每一行
String key = (String) iterator.next();
String value = props.getProperty(key);
out.write(key + "=" + value);
out.write("\r\n");
}
} catch (Exception ex) {
throw ex;
} finally {
try {
out.flush();
out.close();
fs.flush();
fs.close();
} catch (Exception ex) {
}
}
return props;
}
/**
* 读取properties文件的内容封装成properties对象
*
* @param filename
* 文件路径
* @return
* @throws Exception
*/
private Properties getProperties(String filename) throws Exception {
Properties props = new Properties();
FileInputStream fs = null;
try {
// 取出文件里所有的数据
File f = new File(filename);
fs = new FileInputStream(f);
/*
* if(f == null ){ System.out.println("file is null"); }
*/
int filesize = fs.available();
byte[] contentbytes = new byte[filesize];
fs.read(contentbytes);
String contentstr = new String(contentbytes);
// 按照行分解
StringTokenizer stoken = new StringTokenizer(contentstr, "\n\r");
while (stoken.hasMoreTokens()) {
// 取出每一行
String line = stoken.nextToken();
System.out.println("===" + line);
int parsepos = line.indexOf("=");
String key = line.substring(0, parsepos).trim();
String val = line.substring(parsepos + 1).trim();
props.put(key, val);
}
} catch (Exception ex) {
throw ex;
} finally {
try {
fs.close();
} catch (Exception ex) {
}
}
return props;
}
}