code: public static TypedProperties load(String file, FileLocation location)
      {
          // If file is null.
          if (file == null)
          {
              // file must be specified.
              throw new IllegalArgumentException("file is null.");
          }
  
          // If location is null.
          if (location == null)
          {
              // location must be specified.
              throw new IllegalArgumentException("location is null.");
          }
  
          InputStream in = null;
  
          try
          {
              // Open the file.
              in = open(file, location);
  
              if (in == null)
              {
                  // Failed to open the file.
                  return null;
              }
  
              // Build Properties from the input stream.
              Properties properties = load(in);
  
              // Wrap the properties.
              return new PropertiesWrapper(properties);
          }
          catch (IOException e)
          {
              // Failed to open the file, or Properties.load() failed.
              return null;
          }
          finally
          {
              // Close the input stream silently.
              close(in);
          }
      }
docs: Load properties from a file.
  
  @param file
  File name. If {@code location} is {@link FileLocation#CLASSPATH
  CLASSPATH} and if {@code file} does not start with {@code "/"},
  {@code "/"} is prepended.
  
  @param location
  Location from which the file is loaded.
  
  @return
  {@link Properties Properties} loaded from the file.
  {@code null} is returned on failure.
  
  @throws IllegalArgumentException
  {@code file} is {@code null}, or {@code location} is {@code null}.