public static byte[] transformToBytes(String aFilename)
    throws Exception {

    if(null==aFilename) {
        throw new NullPointerException("aFilename is null");
    }
    File theFile = new File(aFilename);
    if(!theFile.isFile()) {
        throw new IllegalArgumentException("Path doesn't represent a file: " + aFilename);
    }
    if(!theFile.exists()) {
        throw new IllegalArgumentException("File not found: " + aFilename);
    }

    InputStream theIs = new BufferedInputStream(new FileInputStream(theFile));
    ByteArrayOutputStream theRawData = new ByteArrayOutputStream();

    byte theBuffer[] = new byte[1024];
    int theBytesRead;

    try {
        while((theBytesRead=theIs.read(theBuffer)) != -1) {

            //System.out.println("read: " + theBytesRead + " bytes.");

            if( theBytesRead < 1024 ) {
                byte theSlice[] = new byte[theBytesRead];
                System.arraycopy(theBuffer, 0, theSlice, 0, theBytesRead);
                theRawData.write(theSlice);
            } else {
                theRawData.write(theBuffer);
            }
        }
    } finally {
        theIs.close();
        theRawData.close();
    }

    return theRawData.toByteArray();
}