Is it possible to download S3object in Java directly into memory and get it removed when i'm done with  the task?
4 Answers
Use the AWS SDK for Java and Apache Commons IO as such:
//import org.apache.commons.io.IOUtils
AmazonS3 s3  = new AmazonS3Client(credentials);  // anonymous credentials are possible if this isn't your bucket
S3Object object = s3.getObject("bucket", "key"); 
byte[] byteArray = IOUtils.toByteArray(object.getObjectContent());
Not sure what you mean by "get it removed", but IOUtils will close the object's input stream when it's done converting it to a byte array.  If you mean you want to delete the object from s3, that's as easy as:
s3.deleteObject("bucket", "key"); 
    3 Comments
Manisha 
 Thanks for your help!this would require the use of additional libraries. Wouldn't it be better if i loop through input stream to get the byte array?
  Paul Draper
 @Manisha, see stackoverflow.com/questions/1264709/….
  nbarraille
 You can now do this without 
  org.apache.commons.io. The AWS SDK ships this method in it's own IOUtils: import com.amazonaws.util.IOUtils;As of AWS JAVA SDK 2 you can you use ReponseTransformer to convert the response to different types. (See javadoc). 
Below is the example for getting the object as bytes
GetObjectRequest request = GetObjectRequest.builder().bucket(bucket).key(key).build()
ResponseBytes<GetObjectResponse> result = bytess3Client.getObject(request, ResponseTransformer.toBytes())
// to get the bytes
result.asByteArray()