code: @DoesServiceRequest
      public final int downloadToByteArray(final byte[] buffer, final int bufferOffset,
              final AccessCondition accessCondition, FileRequestOptions options, OperationContext opContext)
              throws StorageException {
  
          Utility.assertNotNull("buffer", buffer);
          if (bufferOffset < 0) {
              throw new IndexOutOfBoundsException();
          }
  
          if (bufferOffset >= buffer.length) {
              throw new IndexOutOfBoundsException();
          }
  
          if (opContext == null) {
              opContext = new OperationContext();
          }
  
          opContext.initialize();
          options = FileRequestOptions.populateAndApplyDefaults(options, this.fileServiceClient);
          
          WrappedByteArrayOutputStream outputStream = new WrappedByteArrayOutputStream(buffer, bufferOffset);
          ExecutionEngine.executeWithRetry(this.fileServiceClient, this,
                  this.downloadToStreamImpl(null, null, outputStream, accessCondition, options, opContext),
                  options.getRetryPolicyFactory(), opContext);
          return outputStream.getPosition();
      }
docs: Downloads a range of bytes from the file to the given byte buffer, using the specified request options and
  operation context.
  
  @param buffer
  A <code>byte</code> array which represents the buffer to which the file bytes are downloaded.
  @param bufferOffset
  A <code>long</code> which represents the byte offset to use as the starting point for the target.
  @param accessCondition
  An {@link AccessCondition} object that represents the access conditions for the file.
  @param options
  A {@link FileRequestOptions} object that specifies any additional options for the request. Specifying
  <code>null</code> will use the default request options from the associated service client (
  {@link CloudFileClient}).
  @param opContext
  An {@link OperationContext} object that represents the context for the current operation. This object
  is used to track requests to the storage service, and to provide additional runtime information about
  the operation.
  
  @throws StorageException
  If a storage service error occurred.