I'm facing an Out of Memory Exception while converting a 1.8MB image to bytes and then encrypt, finally converting into a string (length printed in log is 1652328). And then, I'm appending this string to some XML format to post, where the real problem arises. While appending some tags to this pictureString using StringBuffer
or StringBuilder
or adding to a string Out of Memory exception is occuring. How can I resolve this issue?
For small images this issue is not replicating.
The below piece of code converts a picture at path path
to String
.
fis = new FileInputStream(path);
buffer = new byte[fis.available()];
try {
fis.read(buffer, 0, buffer.length);
String byteString =
com.mobile.android.components.Base64.encodeBytes(buffer);
return byteString;
} catch (IOException ex) {
}
The above byteString
is appended to xml post as follows.
StringBuilder pictureName = new StringBuilder();
pictureName.append(byteString ); //here array out of bound at StringBuilder.extendBuffer
..........
appending continues
UPDATED
In the above appending, encoded byteStream
is encrypted using cypher AES and then appended to StringBuilder
.