1. 程式人生 > >Properties 配置檔案類

Properties 配置檔案類

介紹

Properties(配置檔案類):主要用於生成配置檔案與讀取配置檔案的資訊。屬於集合體系的類,繼承了Hashtable類,實現了Map介面

因為 Properties 繼承於 Hashtable,所以可對 Properties 物件應用 put 和 putAll 方法。但不建議使用這兩個方法,因為它們允許呼叫者插入其鍵或值不是 String 的項。相反,應該使用 setProperty 方法。如果在“不安全”的 Properties 物件(即包含非 String 的鍵或值)上呼叫 store 或 save 方法,則該呼叫將失敗。
類似地,如果在“不安全”的 Properties 物件(即包含非 String 的鍵)上呼叫 propertyNames 或 list 方法,則該呼叫將失敗。

Properties要注意的細節:

1.如果配置檔案的資訊一旦使用了中文,那麼在使用store方法生成配置檔案時只能使用字元流生成配置檔案,如果使用位元組流,預設是使用IOS8859-1編碼,這是會出現亂碼
2.如果properties中的內容發生了變化,一定重新使用properties生成配置檔案。否則配置檔案資訊將不會發生變化

例子

`
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
public class Propertiesee {

public static void main(String[] args) throws FileNotFoundException, IOException {
    createproperties();
    readProperties();
}
//儲存配置檔案資訊
public static void createproperties() throws FileNotFoundException, IOException {
//建立properties物件
Properties properties=new Properties();
properties.setProperty("guwa", "123");
properties.setProperty("gousheng", "456");
properties.setProperty("孫悟空", "789");
//遍歷properties

// Set

需求:使用PRIPERties實現本軟體只能執行三次,超過三次提示購買正版,退出jvm

public class TestP {
    public static void main(String[] args) throws IOException {
        //配置檔案,記錄次數
        File file=new File("E:\\t\\count.properties");
       if(!file.exists()){
         //如果不存在,就建立
           file.createNewFile();
       }
       //建立Properties物件
       Properties properties=new Properties();
       //把配置資訊新增到物件中
       properties.load(new FileInputStream(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+"");
       //應該放在哪裡FileOutputStreamout=new FileOutputStream(file)?
       //因為在new FileOutputStream()有清空的作用,所以在load方法之後,或者在後面加true,加true的話,資訊是多次寫入,不會先清空在寫入
       //使用properties生成一個配置檔案
       properties.store(new FileOutputStream(file), "runtimes");;

        System.out.println("QQ程式");

    }

}

“`