Listing 1 File file = new File(fileName); RandomAccessFile raf = new RandomAccessFile(file, "r"); FileChannel fileChannel = raf.getChannel(); ByteBuffer riffChunck = ByteBuffer.allocate(12); ByteBuffer headerChunck = ByteBuffer.allocate(24); ByteBuffer dataChunck = ByteBuffer.allocate((int)file.length()-12-24); ByteBuffer[] wavChunks = { riffChunck, headerChunck, dataChunck }; fileChannel.read(wavChunks); Listing 2 File f = new File("FileToBeLocked.dat"); RandomAccessFile raf = new RandomAccessFile(f, "rw"); FileChannel fileChannel = raf.getChannel(); FileLock fileLock = fileChannel.lock(); if (fileLock.isValid()) doSomethingHere(); fileLock.release(); // or close the channel releases the lock!