ファイルを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)
.
コードが何をしようとしているのか、誰か説明できますか? オフセットがバイトの長さよりも短いかどうかを確認するだけで、残りはわかりません。
次の質問は、オフセットを使用してファイルをエンコードする理由は何ですか?
この質問に関する回答は本当に役に立ちます。この種の質問をして申し訳ありませんが、このコードを理解する必要があります。