i am sending file like image,pdf etc to server . some time it giving me out of memory . so how i can Compress file byte[] or ant other way
my code to get byte[] is
private byte[] GetbuildArray(String filePath) throws IOException {
File file = new File(filePath);
InputStream is = new FileInputStream(file);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[(int) file.length()];
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(bos);
String filename = filePath.substring(filePath.lastIndexOf("/") + 1);
dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"" + fileKey + "\"; filename=\""
+ filename + "\"" + lineEnd);
dataOutputStream.writeBytes(lineEnd);
ByteArrayInputStream fileInputStream = new ByteArrayInputStream(buffer.toByteArray());
int bytesAvailable = fileInputStream.available();
int maxBufferSize = bytesAvailable;
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffers = new byte[bufferSize];
// read file and write it into form...
int bytesRead = fileInputStream.read(buffers, 0, bufferSize);
while (bytesRead > 0) {
dataOutputStream.write(buffers, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffers, 0, bufferSize);
}
dataOutputStream.writeBytes(lineEnd);
dataOutputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
return bos.toByteArray();
}
so in this i can avoid outofmemory error