目前,我的代码工作正常,但我应该取代raf.read()
来raf.readFully()
以确保所有字节将被读取?
raf = new RandomAccessFile(doc.getFilePath()+"/"+doc.getName(),"r");
raf.seek((partNumber-1)*partitionSize);
byte[] buf = new byte[partitionSize];
int bytesRead = raf.read(buf); //ensure myself by readFully or not?
System.out.println("expected="+partitionSize+" readed="+bytesRead);
我的建议如下-从本地资源读取文件一样,当一个read()
调用反正会返回字节指定数量。 readFully
当从网络数据流,读取时有用的read()
不能保证所需的字节数将被读取。 这是正确的吗?