code: public String loadString(String encoding) throws IOException {
  		byte[] bytes = loadByteArray();
  
  		ByteOrderMask bom = ByteOrderMask.valueOf(bytes);
  		if(bom != null){
  			int offset = (bom.getBytes()).length;
  
  			return new String(bytes, offset, bytes.length - offset, bom.getEncoding());
  		}
  
  		return new String(bytes, encoding);
  	}
docs: Loads the string in the user specified character encoding.
  
  However, when the underlying byte array begins with a known Unicode byte order mark (BOM),
  then the BOM specified character encoding takes precedence over the user specified character encoding.
  
  @param encoding The user specified character encoding.
  
  @see ByteOrderMask