J'ai essayé de créer des blocs de tableaux d'octets à partir d'un fichier alors que le processus utilisait encore le fichier pour l'écriture. En fait, je stocke la vidéo dans un fichier et je voudrais créer des morceaux à partir du même fichier pendant l'enregistrement.Comment diviser un fichier en morceaux tout en l'écrivant?
La méthode suivante était censé lire des blocs d'octets de fichier:
private byte[] getBytesFromFile(File file) throws IOException{
InputStream is = new FileInputStream(file);
long length = file.length();
int numRead = 0;
byte[] bytes = new byte[(int)length - mReadOffset];
numRead = is.read(bytes, mReadOffset, bytes.length - mReadOffset);
if(numRead != (bytes.length - mReadOffset)){
throw new IOException("Could not completely read file " + file.getName());
}
mReadOffset += numRead;
is.close();
return bytes;
}
Mais le problème est que tous les éléments du tableau sont à 0 et je suppose que c'est parce que le processus d'écriture verrouille le fichier.
Je serais très reconnaissant si quelqu'un d'entre vous pourrait montrer n'importe quel autre moyen de créer des morceaux de fichier tout en écrivant dans le fichier.
en double de http://stackoverflow.com/questions/1470600/android-reading-bytes-from-file-with-one-process-while-another-process- is-writin –
@stephen: page non trouvée. – Chii
Est-ce que votre propre application écrit le fichier vidéo (vous l'avez écrit)? Ou essayez-vous de découper la sortie d'une application étrangère? –