public static byte[] getBytesFromFile(String filename) throws IOException 
   {
       File file = new File( filename );       
       InputStream is = new FileInputStream(file);
   
       // Get the size of the file
       long length = file.length();
   
       // You cannot create an array using a long type.
       // It needs to be an int type.
       // Before converting to an int type, check
       // to ensure that file is not larger than Integer.MAX_VALUE.
       if (length > Integer.MAX_VALUE) {
           // File is too large
           return null;
       }
   
       // Create the byte array to hold the data
       byte[] bytes = new byte[(int)length];
   
       // Read in the bytes
       int offset = 0;
       int numRead = 0;
       while (offset < bytes.length
              && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
           offset += numRead;
       }
   
       // Ensure all the bytes have been read in
       if (offset < bytes.length) 
       {
           System.out.println("Could not completely read file " + file.getName());
       }
   
       // Close the input stream and return bytes
       is.close();
       return bytes;
   }