Java处理yaml文件 yaml文件格式如下:
1 2 3 ---  !dataBean.pc.overduequery.OverdueBean id:  'default' mobileNumber:  '15711101521' 
DataBean类:
DataBean类用来set和get数据,并对外提供public级别访问权限以使可以读写数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package  dataBean.pc.overduequery;import  dataBean.IDataBean;public  class  OverdueBean  implements  IDataBean  {    private  String id;     private  String idCardNo;     private  String mobileNumber;     @Override      public  String getId ()  {         return  id;     }     public  void  setId (String id)  {         this .id = id;     }     public  String getIdCardNo ()  {         return  idCardNo;     }     public  void  setIdCardNo (String idCardNo)  {         this .idCardNo = idCardNo;     }     public  String getMobileNumber ()  {         return  mobileNumber;     }     public  void  setMobileNumber (String mobileNumber)  {        this .mobileNumber = mobileNumber;     } } 
解析 DataFactory.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 package  dataTool;import  dataBean.IDataBean;import  dataBean.pc.overduequery.OverdueBean;import  org.ho.yaml.Yaml;import  java.io.FileNotFoundException;import  java.io.InputStream;import  java.util.ArrayList;import  java.util.List;public  class  DataFactory  {         public  static  <T> T GetData (Class<T> objectClass)  throws  FileNotFoundException {         String  objectClassName  =  objectClass.getName();         if  (null  != objectClassName) {             objectClassName = objectClassName.replace("." , "/" ).replace("dataBean" , "yaml" );         }         String  path  =  objectClassName + ".yaml" ;         InputStream  inStream  =  ClassLoader.getSystemResourceAsStream(path);         T  tObject  =  Yaml.loadType(inStream, objectClass);         return  tObject;     }     public  static  <IDataBean> List GetDataList (Class<IDataBean> objectClass)  {         String  objectClassName  =  objectClass.getName();         if  (null  != objectClassName) {             objectClassName = objectClassName.replace("." , "/" ).replace("dataBean" , "yaml" );         }         String  path  =  objectClassName + ".yaml" ;         InputStream  inStream  =  ClassLoader.getSystemResourceAsStream(path);         List<IDataBean> objList = new  ArrayList <IDataBean>();         for  (Object obj : Yaml.loadStream(inStream)) {             objList.add((IDataBean) obj);         }         return  objList;     }          public  static  <T extends  IDataBean > T getObject (Class<T> objectClass, String id)  throws  Exception {         List<IDataBean> DataList = DataFactory.GetDataList(objectClass);         for  (IDataBean dataBean : DataList) {             if  (dataBean.getId().equals(id))                 return  (T) dataBean;         }         throw  new  Exception ("No data by use id in this yaml file!!!!" );     }          public  static  void  main (String[] args)  throws  Exception {         OverdueBean  overdueBean  =  new  OverdueBean ();         overdueBean = DataFactory.getObject(OverdueBean.class, "default" );         System.out.println(overdueBean.getMobileNumber());      } } 
yaml文件路径要与其对应的Bean类文件路径一致.