java筆記----property文件讀寫

package com.test.property;

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.util.HashMap;
import java.util.Iterator;
import java.util.Properties;

/**
* @author 
* @version 建立時間:2019年3月26日 上午8:40:17
* 類說明
*/
public class PropertyTest {
    static Properties prop = new Properties();
    static String strPath=PropertyTest.class.getClassLoader().getResource("./").getPath()+"/a.properties";
    static HashMap<String, String> map = new HashMap<String, String>();
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
          
          File file = new File(strPath);  
          String[] path =strPath.split("/");
          String filename =path[path.length-1];
          String dpath =strPath.replace("/"+filename, "");
           System.out.println("文件路徑"+dpath);
           System.out.println("文件名"+filename);
            if(!new File(dpath).exists()){
                new File(dpath).mkdirs();
                System.out.println("建立目錄成功:"+dpath);
            if(!file.exists()){
                    file.createNewFile();
                    System.out.println("建立文件成功:"+file);
                }
            }else{
                if(!file.exists()){
                    file.createNewFile();
                    System.out.println("建立文件成功2:"+file);
                }
            }
            
            //讀取屬性文件a.properties
            InputStream in = new BufferedInputStream (new FileInputStream(strPath));
            prop.load(in);     ///加載屬性列表
            Iterator<String> it=prop.stringPropertyNames().iterator();
            while(it.hasNext()){
                String key=it.next();
                map.put(key,prop.getProperty(key));
                System.out.println(key+":"+prop.getProperty(key));
            }
            in.close();
            addProp("3","455");
            
    }
   
    private static boolean addProp(String key,String value){//添加key不是相同的property
        //
        if(map.containsKey(key)){  //裏面含有該key不寫進去
            return false;
        }else{
        try {
            FileOutputStream oFile = new FileOutputStream(strPath, false);
            prop.setProperty(key, value);
            prop.store(oFile, null);//null就是不要註釋
            oFile.close();
            return true;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }//true表示追加打開
        return false;
      }
    }
}

 

相關文章
相關標籤/搜索