docs: public static String encodeFromFile(String filename)
  	{
  		String encodedData = null;
  		Base64.InputStream bis = null;
  		try
  		{
  			// Set up some useful variables
  			java.io.File file = new java.io.File(filename);
  			byte[] buffer = new byte[Math.max((int) (file.length() * 1.4), 40)]; // Need max() for math on small files (v2.2.1)
  			int length = 0;
  			int numBytes = 0;
  
  			// Open a stream
  			bis = new Base64.InputStream(new java.io.BufferedInputStream(new java.io.FileInputStream(file)), Base64.ENCODE);
  
  			// Read until done
  			while ((numBytes = bis.read(buffer, length, 4096)) >= 0)
  				length += numBytes;
  
  			// Save in a variable to return
  			encodedData = new String(buffer, 0, length, Base64.PREFERRED_ENCODING);
  
  		} // end try
  		catch (java.io.IOException e)
  		{
  		} // end catch: IOException
  		finally
  		{
  			try
  			{
  				bis.close();
  			}
  			catch (Exception e)
  			{
  			}
  		} // end finally
  
  		return encodedData;
  	}