021.8 properties(開發使用頻率高)
阿新 • • 發佈:2018-05-08
對象 oid 分享圖片 opened exception pfile pan count closed
內容:Properties基本存取、存儲到持久化設備、從持久化設備讀取、簡單模擬收費軟件試用結束
##
Properties——有配置文件的功能。
特點:
1、Hash table的子類,map集合中的方法都可以用
2、該集合沒有泛型。鍵值都是字符串
3、是一個持久化的屬性集,鍵值可以保存到集合和持久化設備上,鍵值的來源也可以是持久化設備。
##########################################################
基本存取
public class PropertiesDemo { public static void main(String[] args) { methodDemo(); }public static void methodDemo() { //Properties基本存取 Properties prop = new Properties(); prop.setProperty("xlsg", "21"); prop.setProperty("qldk", "20"); // prop.list(System.out); //這個方法調試使用 Set<String> set = prop.stringPropertyNames(); for(String name:set){ String value= prop.getProperty(name); System.out.println(name+"__"+value); } } }
#######################################################################
存儲到持久化設備
通過Properties的store方法指定保存到什麽文件裏面
public class PropertiesDemo { public static void main(String[] args) throws IOException { methodDemo(); }public static void methodDemo() throws IOException { //Properties基本存取 Properties prop = new Properties(); prop.setProperty("xlsg", "21"); prop.setProperty("qldk", "20"); // prop.list(System.out); //這個方法調試使用 Set<String> set = prop.stringPropertyNames(); for(String name:set){ String value = prop.getProperty(name); System.out.println(name+"__"+value); } //永久化存儲到設備上 FileOutputStream fos = new FileOutputStream("myfile\\we.properties"); //使用properties的store方法。 prop.store(fos, "my demo , person info"); } }
#########################################################################################
從持久化設備讀取
public static void main(String[] args) throws IOException { // methodDemo(); methodDemo_read(); } private static void methodDemo_read() throws IOException { File configure_file = new File("myfile\\we.properties"); //讀取流中的數據 Properties prop = new Properties(); //定義讀取流和數據文件關聯 FileInputStream fis = new FileInputStream(configure_file.toString()); prop.load(fis); prop.list(System.out); //測試使用 prop.setProperty("xlsg", "22"); prop.list(System.out); FileOutputStream fos = new FileOutputStream(configure_file); prop.store(fos, "my demo,person info"); fis.close(); fos.close(); }
步驟:1)創建properties對象
2)創建輸入流對象
3)properties對象和輸入流對象相關聯
4)通過prop.setProperty("xlsg", "22");進行操作
5)保存prop.store(fos, "my demo , person info");
#########################################################################################
簡單模擬收費軟件試用結束
public static void main(String[] args) throws IOException { String value = read_count(); if(count(Integer.parseInt(value))){ //操作 value = Integer.toString(Integer.parseInt(value)+1); System.out.println(value); } else{ System.out.println("試用結束,請充值!"); } write_count(value); } private static boolean count(int num) { if(num<5){ return true; } return false; } private static void write_count(String value) throws IOException { File configure_file = new File("myfile\\count.properties"); FileOutputStream fos = new FileOutputStream(configure_file); Properties prop = new Properties(); prop.setProperty("count", value); prop.store(fos, "tryout count"); fos.close(); } private static String read_count() throws IOException { File configure_file = new File("myfile\\count.properties"); if(!configure_file.exists()){ configure_file.createNewFile(); } FileInputStream fis = new FileInputStream(configure_file); Properties prop = new Properties(); prop.load(fis); String value; String key = "count"; if(prop.containsKey(key)){ } else{ prop.setProperty(key, "0"); } value = prop.getProperty(key); return value; }my code
public static void main(String[] args) throws IOException { /* * 練習:定義功能記錄程序運行次數,滿足試用次數後,給出提示:試用次數已到,請註冊。 * * 思路: * 1,需要計數器。這個軟件使用一次計數一次。每使用一次,就進行計數累計。 * 2,計數器是程序中的一個變量,程序啟動計數器計數,可是程序結束這個計數器就消失了。 * 下次啟動會重新進行計數,原來計數的值沒有保留下來。咋辦? * 3,讓這個計數器持久化。存儲到文件中,為了標識數據可讀性,數據起個名字。出現鍵值對。 * 而且還是一個持久化的鍵值對,Properties集合正好符合這個要求。 * */ if(isStop()){ System.out.println("試用次數已到,請註冊"); return; } runcode(); } private static boolean isStop() throws IOException { //1,配置文件。 File configFile = new File("tempfile\\app.properties"); if(!configFile.exists()){//如果配置文件不存在,就創建。 configFile.createNewFile(); } //2,創建屬性集。 Properties prop = new Properties(); //3,定義讀取流和配置文件關聯。 FileInputStream fis = new FileInputStream(configFile); //4,將流關聯的數據讀取到屬性集中。 prop.load(fis); //5,通過屬性集的指定鍵count,獲取具體的次數。 String value = prop.getProperty("count"); int count = 0; //6, 對value進行判斷,如果存在就對其自增。 if(value!=null){ count = Integer.parseInt(value); if(count>=5){ return true; } } count++;//對其值進行自增。 //7,將自增後的值和指定的鍵重新存儲到屬性集中,鍵相同,值覆蓋。 prop.setProperty("count", Integer.toString(count)); //8,將屬性集存儲到配置文件中。對配置文件中的信息進行更新。 FileOutputStream fos = new FileOutputStream(configFile); prop.store(fos, "app run count"); //9,關閉資源。 fos.close(); fis.close(); return false; } //程序主體。 public static void runcode(){ System.out.println("程序運行....play"); }the answer
021.8 properties(開發使用頻率高)