我发现此代码是为了将文件编码为 base64。它正在使用偏移量。
File filePath = new File("/sdcard/videooutput.mp4");
try{
FileInputStream fin=new FileInputStream(filePath);
long length = filePath.length();
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset<bytes.length && (numRead=fin.read(bytes, offset, bytes.length-offset))>=0){
offset += numRead;
}
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+filePath.getName());
}
Base64.encodeToString(bytes, Base64.DEFAULT);
我不明白这段代码的是while (offset < bytes.length && (numRead=fin.read(bytes, offset, bytes.length-offset)) >= 0)
.
谁能解释代码试图做什么?我只了解它检查偏移量是否小于字节长度,其余的我不确定。
我的下一个问题是,使用偏移量对文件进行编码的原因是什么?
关于这个问题的任何答案都会非常有帮助。很抱歉问这种类型的问题,但我真的需要理解这段代码。