List of usage examples for java.nio.channels FileLock release
public abstract void release() throws IOException;
From source file:Main.java
public static void main(String[] argv) throws Exception { File file = new File("filename"); FileChannel channel = new RandomAccessFile(file, "rw").getChannel(); FileLock lock = channel.lock(); lock = channel.tryLock();//from ww w. j a va2 s . com lock.release(); channel.close(); }
From source file:FileLocking.java
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("file.txt"); FileLock fl = fos.getChannel().tryLock(); if (fl != null) { System.out.println("Locked File"); Thread.sleep(100);/* w ww . j ava2 s. co m*/ fl.release(); System.out.println("Released Lock"); } fos.close(); }
From source file:Main.java
public static void main(String[] argv) throws Exception { File file = new File("filename"); FileChannel channel = new RandomAccessFile(file, "rw").getChannel(); FileLock lock = channel.lock(0, Long.MAX_VALUE, true); lock = channel.tryLock(0, Long.MAX_VALUE, true); boolean isShared = lock.isShared(); lock.release(); channel.close();/* w ww . j a v a2 s .c om*/ }
From source file:MainClass.java
public static void main(String[] args) throws IOException { FileInputStream inFile = new FileInputStream(args[0]); FileOutputStream outFile = new FileOutputStream(args[1]); FileChannel inChannel = inFile.getChannel(); FileChannel outChannel = outFile.getChannel(); FileLock outLock = outChannel.lock(); FileLock inLock = inChannel.lock(0, inChannel.size(), true); inChannel.transferTo(0, inChannel.size(), outChannel); outLock.release(); inLock.release();//from w w w .j a v a2 s . c o m inChannel.close(); outChannel.close(); }
From source file:Main.java
public static void main(String[] args) throws Exception { RandomAccessFile raf = new RandomAccessFile("test.txt", "rw"); FileChannel fileChannel = raf.getChannel(); FileLock lock = null; try {/*www .j ava2 s. co m*/ lock = fileChannel.lock(0, 10, true); } catch (IOException e) { // Handle the exception } finally { if (lock != null) { try { lock.release(); } catch (IOException e) { // Handle the exception } } } }
From source file:com.moscona.dataSpace.debug.BadLocks.java
public static void main(String[] args) { try {/*from www .ja va2s.c o m*/ String lockFile = "C:\\Users\\Admin\\projects\\intellitrade\\tmp\\bad.lock"; FileUtils.touch(new File(lockFile)); FileOutputStream stream = new FileOutputStream(lockFile); // FileInputStream stream = new FileInputStream(lockFile); FileChannel channel = stream.getChannel(); // FileLock lock = channel.lock(0,Long.MAX_VALUE, true); FileLock lock = channel.lock(); stream.write(new UndocumentedJava().pid().getBytes()); stream.flush(); long start = System.currentTimeMillis(); // while (System.currentTimeMillis()-start < 10000) { // Thread.sleep(500); // } lock.release(); stream.close(); File f = new File(lockFile); System.out.println("Before write: " + FileUtils.readFileToString(f)); FileUtils.writeStringToFile(f, "written after lock released"); System.out.println("After write: " + FileUtils.readFileToString(f)); } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }
From source file:Lock.java
public static void main(String args[]) throws IOException, InterruptedException { RandomAccessFile file = null; // The file we'll lock FileChannel f = null; // The channel to the file FileLock lock = null; // The lock object we hold try { // The finally clause closes the channel and releases the lock // We use a temporary file as the lock file. String tmpdir = System.getProperty("java.io.tmpdir"); String filename = Lock.class.getName() + ".lock"; File lockfile = new File(tmpdir, filename); // Create a FileChannel that can read and write that file. // Note that we rely on the java.io package to open the file, // in read/write mode, and then just get a channel from it. // This will create the file if it doesn't exit. We'll arrange // for it to be deleted below, if we succeed in locking it. file = new RandomAccessFile(lockfile, "rw"); f = file.getChannel();/* ww w. j a v a 2 s . c o m*/ // Try to get an exclusive lock on the file. // This method will return a lock or null, but will not block. // See also FileChannel.lock() for a blocking variant. lock = f.tryLock(); if (lock != null) { // We obtained the lock, so arrange to delete the file when // we're done, and then write the approximate time at which // we'll relinquish the lock into the file. lockfile.deleteOnExit(); // Just a temporary file // First, we need a buffer to hold the timestamp ByteBuffer bytes = ByteBuffer.allocate(8); // a long is 8 bytes // Put the time in the buffer and flip to prepare for writing // Note that many Buffer methods can be "chained" like this. bytes.putLong(System.currentTimeMillis() + 10000).flip(); f.write(bytes); // Write the buffer contents to the channel f.force(false); // Force them out to the disk } else { // We didn't get the lock, which means another instance is // running. First, let the user know this. System.out.println("Another instance is already running"); // Next, we attempt to read the file to figure out how much // longer the other instance will be running. Since we don't // have a lock, the read may fail or return inconsistent data. try { ByteBuffer bytes = ByteBuffer.allocate(8); f.read(bytes); // Read 8 bytes from the file bytes.flip(); // Flip buffer before extracting bytes long exittime = bytes.getLong(); // Read bytes as a long // Figure out how long that time is from now and round // it to the nearest second. long secs = (exittime - System.currentTimeMillis() + 500) / 1000; // And tell the user about it. System.out.println("Try again in about " + secs + " seconds"); } catch (IOException e) { // This probably means that locking is enforced by the OS // and we were prevented from reading the file. } // This is an abnormal exit, so set an exit code. System.exit(1); } // Simulate a real application by sleeping for 10 seconds. System.out.println("Starting..."); Thread.sleep(10000); System.out.println("Exiting."); } finally { // Always release the lock and close the file // Closing the RandomAccessFile also closes its FileChannel. if (lock != null && lock.isValid()) lock.release(); if (file != null) file.close(); } }
From source file:Main.java
public static void freeFileLock(FileLock fl, File file) { if (file != null) { file.delete();// w w w . ja v a 2s . c o m } if (fl != null && fl.isValid()) { try { fl.release(); } catch (IOException var3) { ; } } }
From source file:eu.mhutti1.utils.storage.StorageDeviceUtils.java
private static boolean canWrite(File file) { try {/* w w w. ja v a 2s . c o m*/ RandomAccessFile randomAccessFile = new RandomAccessFile(file + "/test.txt", "rw"); FileChannel fileChannel = randomAccessFile.getChannel(); FileLock fileLock = fileChannel.lock(); fileLock.release(); fileChannel.close(); randomAccessFile.close(); return true; } catch (Exception ex) { return false; } }
From source file:com.wabacus.util.FileLockTools.java
private static boolean release(FileLock fl) { try {//w ww.ja v a 2 s .com if (fl != null) { fl.release(); fl = null; } return true; } catch (Exception e) { System.out.println("FileLock"); e.printStackTrace(); return false; } }