import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
public class Util {
/**
* @param args
*/
public static void main(String[] args) {
new Util().writeProperties();
}
public void writeProperties(){
Properties p = new Properties();
p.setProperty("name","Gemerl");
p.setProperty("password","123456");
File file=new File("src/properties");
InputStream in;
OutputStream os;
if(!file.exists()){
file.mkdirs();
}
file=new File("src/properties/test.properties");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
in = new BufferedInputStream(new FileInputStream(file));
p.load(in);
os = new FileOutputStream(file);
p.store(os, "看能写注释不..");
in.close();
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @return 通过properties的key返回value值
*/
public String getString(String key){
InputStream in = this.getClass().getResourceAsStream("src/test.properties");
//上面的这句in是null值
Properties props = new Properties();
String val=null;
try {
props.load(in);
val=(String) props.getProperty(key);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return val;
}
}
文件结构
File file=new File("src/properties");
if(!file.exists()){
file.mkdirs();
}
file=new File("src/properties/test.properties");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
另外,如果我想让properties文件不存在就自动在src下面创建该怎么写的。。
------解决方案--------------------
getResourceAsStream的参数使用:
有 /,/代表代表了工程的根目录
没有 /,代表当前类的目录 ,运行环境下当然没有src目录了