0
DataOutputStream lWriter = new DataOutputStream(connection.getOutputStream());
int bytesRead = 0;
int offset = 0;
byte[] bytes = new byte[1048576]; // read 1MB at a time
RandomAccessFile f = new RandomAccessFile(xmlFile, "rw");
while(bytesRead != -1){
offset += f.read(bytes, offset, bytes.length);
if (bytesRead != -1){
lWriter.write(bytes, 0, bytes.length);
}
}
有了这段代码,我得到一个索引超出f.read()的界限异常。我可能错误地误用了参数偏移量和长度。我不会每次读到一个块时,都应该将偏移量移动到块的大小上?也许我只需要少阅读,并使用较小的缓冲区?有一个问题写入DataOutputStream和从缓冲区读RandomAccessFile
目前我有这个实现的工作,但我担心内存的使用:
DataOutputStream lWriter = new DataOutputStream(connection.getOutputStream());
lWriter.write(fileToBytes(xmlFile));
感谢您的帮助!