Properties(配置文件類): 主要用於生產配置文件與讀取配置文件的信息。java
往properties文件寫入數據:工具
public class Demo3 {
public static void main(String[] args) throws IOException {
creatProperties();
}
//保存配置文件文件的信息。
public static void creatProperties() throws IOException{
//建立Properties
Properties properties = new Properties();
properties.setProperty("陳奕迅", "歌頌");
properties.setProperty("楊千嬅","再見二丁目");
properties.setProperty("謝安琪","年度之歌");
// 遍歷Properties
/*Set<Entry<Object, Object>> entrys = properties.entrySet(); for(Entry<Object, Object> entry :entrys){ System.out.println("鍵:"+ entry.getKey() +" 值:"+ entry.getValue()); }*/
//使用Properties生產配置文件。
//第一個參數是一個輸出流對象,第二參數是使用一個字符串描述這個配置文件的信息。
//properties.store(new FileOutputStream("E:\\songs.properties"), "songList");
properties.store(new FileWriter("E:\\songs.properties"), "list");
}
}
複製代碼
讀取Properties文件的數據:編碼
public class Demo3 {
public static void main(String[] args) throws IOException {
//creatProperties();
readProperties();
}
//讀取配置文件的信息
public static void readProperties() throws IOException{
//建立Properties對象
Properties properties = new Properties();
//加載配置文件信息到Properties中
properties.load(new FileReader("F:\\songList.properties"));
//遍歷
Set<Entry<Object, Object>> entrys = properties.entrySet();
for(Entry<Object, Object> entry :entrys){
System.out.println("鍵:"+ entry.getKey() +" 值:"+ entry.getValue());
}
//修改陳奕迅的歌曲
//把修改後的Properties再生成一個配置文件
properties.setProperty("陳奕迅", "全世界失眠");
properties.store(new FileWriter("F:\\\\songList.properties"), "newList");
}
//保存配置文件文件的信息。
public static void creatProperties() throws IOException{
//建立Properties
Properties properties = new Properties();
properties.setProperty("陳奕迅", "歌頌");
properties.setProperty("楊千嬅","再見二丁目");
properties.setProperty("謝安琪","年度之歌");
// 遍歷Properties
/*Set<Entry<Object, Object>> entrys = properties.entrySet(); for(Entry<Object, Object> entry :entrys){ System.out.println("鍵:"+ entry.getKey() +" 值:"+ entry.getValue()); }*/
//使用Properties生產配置文件。
//第一個參數是一個輸出流對象,第二參數是使用一個字符串描述這個配置文件的信息。
//properties.store(new FileOutputStream("E:\\songs.properties"), "songList");
properties.store(new FileWriter("F:\\songs.properties"), "list");
}
}
複製代碼
Properties要注意的細節:spa
store(OutputStream out,String comments); store(Writer writer,String comments); 參數一:輸出流對象 參數二:使用一個字符串描述這個配置文件的信息。code
使用properties文件記錄軟件的運行次數,超過三次以後提示購買正版,退出JVM:對象
public class Demo {
public static void main(String[] args) throws IOException {
File file = new File("F:\\count.properties");
if(!file.exists()){
//若是配置文件不存在,則建立該配置文件
file.createNewFile();
}
//建立Properties對象。
Properties properties = new Properties();
//把配置文件的信息加載到properties中
properties.load(new FileInputStream(file));
//此處注意建立輸出流要在加載了properties以後,由於每次建立流,都會把以前的內容清空。
FileOutputStream fileOutputStream = new FileOutputStream(file);
int count = 0; //定義該變量是用於保存軟件的運行次數的。
//讀取配置文件的運行次數
String value = properties.getProperty("count");
if(value!=null){
count = Integer.parseInt(value);
}
//判斷使用的次數是否已經達到了三次,
if(count==3){
System.out.println("您已經超出試用次數,請購買正版軟件!!");
System.exit(0);
}
count++;
System.out.println("你已經使用了本軟件第"+count+"次");
properties.setProperty("count",count+"");
//使用Properties生成一個配置文件
properties.store(fileOutputStream,"runtime");
}
}
複製代碼
Props工具類:用來讀取Properties文件中的信息開發
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;
public class Props {
private static String configPath = "C:\\config\\config.properties";
public static String getConfigPath() {
return configPath;
}
public static void setConfigPath(String configPath) {
Props.configPath = configPath;
}
private static Properties props = new Properties();
private static void loadProperty() {
InputStream ins = null;
try {
ins = new BufferedInputStream(new FileInputStream(configPath));
props.load(ins);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String getString(String key) {
if (props.get(key) == null) {
loadProperty();
}
return (String) props.get(key);
}
public static boolean getBoolean(String key) {
if (props.get(key) == null) {
loadProperty();
}
String val = (String) props.get(key);
return Boolean.parseBoolean(val);
}
public static int getInt(String key) {
if (props.get(key) == null) {
loadProperty();
}
String val = (String) props.get(key);
return Integer.parseInt(val);
}
}
複製代碼