properties文件的读写

  本来是要学Struts的,看了半天Struts In Action,一开始就看不懂里面的properties文件的读写,所以就依样画葫芦的抄里边的程序来学properties文件的读写,下边的就是我“抄”的程序:
 
  我用的是MyEclipse,其实Eclipse就可以了。兴建一个java project,创建三个类,分别是Jmain Testproperty 和UdException。 Jmain是主程序,Testproperty是控制properties文件的读写用的,下边是他们的代码:
Testproperty.java代码:
// Testproperty.java
package u2;
import java.io.*;
import java.util.Enumeration;
import java.util.Properties;

public class Testproperty {
     private static final String UserDirFile=
           "users.properties";
     private static final String UserDirHeader =
    "${user}=${password}";
     private static Properties p=null;
     private static Testproperty t=null;
     
     public Testproperty()throws UdException {
           // TODO Auto-generated constructor stub
           InputStream i=null;
     // i = this.getClass().getClassLoader().
    //     getResourceAsStream(UserDirectoryFile);      
     try {
           i=new FileInputStream(UserDirFile);
           
     } catch (Exception e) {
           // TODO: handle exception
           throw new UdException();
     }
           
           if(null==i)
           {
                 throw new UdException();
           }
           else
           {
                 try
                 {
                 p= new Properties();
                 p.load(i);
                 } catch (IOException e)
                 {
                 // TODO: handle exception
                       System.out.println(e.getMessage());
                       throw new UdException();
                 }
           finally{
                 i=null;
           }
           }
     
     }
     public static Testproperty getInst() throws UdException
     {
           if(null == t){
                 t=new Testproperty();
           }
           return t;
     }
     public Enumeration getUser(){
           return p.propertyNames();
     }
     public String getPassword(String aaa) {
    return p.getProperty(aaa);
}
     public void setIds(String userId ,String password)
     {
           try
           {
                 p.put(userId,password);
                 p.store(new FileOutputStream(UserDirFile),UserDirHeader);
           } catch (IOException e)
           {
                 // TODO: handle exception
                 System.out.println(e.getMessage());
           }
           
     }
}

Jmain.java代码:

// Jmain.java
package u2;

public class Jmain {

     /**
      * @param args
      */
     public static void main(String[] args)throws UdException {
           // TODO Auto-generated method stub
           String t= Testproperty.getInst().getPassword("TED");
           System.out.println(t);
           Testproperty.getInst().setIds("aaa","tttttt");
           String r=Testproperty.getInst().getPassword("aaa");
           System.out.println(r);
     }

}


UdException.java代码:
//UdException.java
package u2;

public class UdException extends Exception {

}

最后还要建一份users.properties文件用来读写的。它放在最上的文件夹了。
文件内容为:
TED=Husted
CEDRIC=Dumoulin
GEORGE=Franciscus
DAVID=Winterfeldt
CRAIG=McClanahan
这样就大功告成了。

  现在我解释一下核心的Testproperty.java。
Testproperty()构造函数用来读入users.properties这里我把:
i = this.getClass().getClassLoader().
          getResourceAsStream(UserDirFile);
改成了:
i=new FileInputStream(UserDirFile);
因为上边会造成读写不是在同一份users.properties文件。


在Jmain.java后边加上:
Enumeration e= Testproperty.getInst().getUser();
        while(e.hasMoreElements())
        {
              System.out.println(e.nextElement());
        }
    }
就可以得到properties文件的用户名。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值