- Don't use the API that reads one byte at a time.
- Read a byte[] at a time.
- Use BufferedInputStream / BufferedOutputStream. Set large buffers if necessary.
int bufferSize = 32768;
byte[] buf = new byte[bufferSize];
int bytesRead = 0;
while((bytesRead = bufferedInputStream.read(buf)) != -1) {
if(bytesRead < bufferSize) {
buf = Arrays.copyOfRange(buf, 0, bytesRead);
}
// Do something with buf
}
}
No comments:
Post a Comment