Mega Code Archive

 
Categories / Java / Development Class
 

Load and save properties to files

/*  * Copyright Javelin Software, All rights reserved.  */ import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.*; /**  * PropertiesUtil is used to load and save properties to files.  * <p>  * @author Robin Sharp  */ public class PropertiesUtil {     public PropertiesUtil()     {     }     public static Map getByValue( Properties properties, String value )     {         Map map = new HashMap();         Iterator iter = properties.entrySet().iterator();         do         {             if(!iter.hasNext() )                 break;             java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();             if(entry.getValue().equals(value ) )                 map.put(entry.getKey(), entry.getValue() );         } while(true );         return map;     }     public static Properties load( Properties properties, String fileName ) throws IOException     {         if(fileName == null )         {             throw new IllegalArgumentException( "FileName is not set." );         }         else         {             return load( properties, new File(fileName ) );         }     }     public static Properties load( Properties properties, File file ) throws IOException     {         if(file == null )         {             throw new IllegalArgumentException( "File is not set." );         }         else         {             return load( properties, ((InputStream ) ( new FileInputStream(file ) )) );         }     }     public static Properties load( Properties properties, URL url ) throws IOException     {         if( url == null )         {             throw new IllegalArgumentException( "Url is not set." );         }          else         {             URLConnection connection = url.openConnection();             return load( properties, connection.getInputStream() );         }     }     public static Properties load( Properties properties, Class relativeClass, String relativeFileName ) throws IOException     {         if(relativeClass == null )         {             throw new IllegalArgumentException( "Relative Class is not set." );         }         if(relativeFileName == null )         {             throw new IllegalArgumentException( "Relative File Name is not set." );         }         else         {             return load( properties, relativeClass.getResourceAsStream(relativeFileName ) );         }     }     public static Properties load( Properties properties, InputStream inputStream ) throws IOException     {         try         {             if( properties == null )             {                 throw new IllegalArgumentException( "Properties is not set." );             }                          if( inputStream == null )             {                 throw new IllegalArgumentException( "InputStream is not set." );             }                          properties.load( new BufferedInputStream(inputStream ) );         }         finally         {             if(inputStream != null )                 inputStream.close();         }         return properties;     }     public static void store( Properties properties, String fileName ) throws IOException     {         if(fileName == null )         {             throw new IllegalArgumentException( "FileName is not set." );         }          else         {             store( properties, new File(fileName ) );             return;         }     }     public static void store( Properties properties, File file )         throws IOException     {         if(file == null )         {             throw new IllegalArgumentException( "File is not set." );         } else         {             store( properties, ((OutputStream ) ( new FileOutputStream(file ) )) );             return;         }     }     public static void store( Properties properties, URL url ) throws IOException     {         if( url == null )         {             throw new IllegalArgumentException( "Url is not set." );         } else         {             URLConnection connection = url.openConnection();             connection.setDoOutput(true );             store( properties, connection.getOutputStream() );             return;         }     }     public static void store( Properties properties, Class relativeClass, String relativeFileName )         throws IOException     {         if(relativeClass == null )             throw new IllegalArgumentException( "Relative Class is not set." );         if(relativeFileName == null )         {             throw new IllegalArgumentException( "Relative File Name is not set." );         }          else         {             String className = relativeClass.getName().substring(relativeClass.getName().lastIndexOf( "." ) + 1);             URL url = relativeClass.getResource(String.valueOf(String.valueOf( className ) ).concat( ".class" ) );             String fileName = url.getFile();             fileName = String.valueOf(fileName.substring(1, fileName.length() - className.length() - 6) ) + String.valueOf(relativeFileName );             store( properties, fileName );             return;         }     }     public static void store( Properties properties, OutputStream outputStream ) throws IOException     {         try         {             if( properties == null )             {                 throw new IllegalArgumentException( "Properties is not set." );             }             if( outputStream == null )             {                 throw new IllegalArgumentException( "OutputStream is not set." );             }             properties.store( new BufferedOutputStream( outputStream ), null );         }         finally         {             if( outputStream != null )             {                 outputStream.close();             }         }     }     public static void main(String args[])     {         try         {             System.out.println(load( new Properties(), "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) );             System.out.println(load( new Properties(), new File( "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) ));             System.out.println(load( new Properties(), new URL( "file:///C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) ));             System.out.println(load( new Properties(), PropertiesUtil.class, "test.properties" ) );             Properties properties = new Properties();             properties.put( "1", "2" );             properties.put( "2", "2" );             properties.put( "3", "3" );             store( properties, "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test1.properties" );             store( properties, new File( "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test2.properties" ) );             store( properties, PropertiesUtil.class, "test4.properties" );             System.out.println(getByValue( properties, "2" ) );         }         catch(Exception e )         {             e.printStackTrace();         }     } }