I tried to create byte array blocks from file whil the process was still using the file for writing. Actually I am storing video into file and I would like to create chunks from the same file while recording.
The following method was supposed to read blocks of bytes from file:
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; } But the problem is that all array elements are set to 0 and I guess it is because the writing process locks the file.
I would bevery thankful if anyone of you could show any other way to create file chunks while writing into file.