FileLock
java新IO当中有对文件锁的支持,文件锁主要分为两种:共享锁(读锁)、独占锁(写锁)
例子1:
package nio; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; public class FileLockTest { public static void main(String[] args) throws Exception{ //读文件 FileInputStream in = new FileInputStream("F:\\1.txt"); FileChannel inChannel = in.getChannel(); // FileLock inFileLock = inChannel.lock();//获取独占所,有异常FileInputStream只能获取共享锁 // FileLock inFileLock = inChannel.lock(0,in.available(),false);//获取独占所,有异常FileInputStream只能获取共享锁 // FileLock inFileLock = inChannel.lock(0,in.available(),true);//获取共享锁 // FileLock inFileLock = inChannel.tryLock();//获取独占所,有异常FileInputStream只能获取共享锁 // FileLock inFileLock = inChannel.tryLock(0,in.available(),false);//获取独占所,有异常FileInputStream只能获取共享锁 FileLock inFileLock = inChannel.tryLock(0,in.available(),true);//获取共享锁 inFileLock.release();//锁释放 inChannel.close(); in.close(); //写文件 FileOutputStream out = new FileOutputStream("F:\\1.txt",true);//从文件末尾接着写入,避免之前的内容覆盖 FileChannel outChannel = out.getChannel(); // FileLock outFileLock = outChannel.lock();//获取文件的独占锁 // FileLock outFileLock = outChannel.lock(2,100,true);//获取文件的共享锁 // FileLock outFileLock = outChannel.lock(2,100,false);//获取文件的独占锁,锁定第2个到100个字节 // FileLock outFileLock = outChannel.tryLock();//获取文件的独占锁 // FileLock outFileLock = outChannel.tryLock(2,100,true);//获取文件的共享锁 FileLock outFileLock = outChannel.tryLock(2,100,false);//获取文件的独占锁,锁定第2个到100个字节 System.out.println("########"); outFileLock.release(); outChannel.close(); out.close(); } private static void printInfo(ByteBuffer buffer) { while(buffer.hasRemaining()) { System.out.print((char)buffer.get()+"、"); } System.out.println(); } }
相关推荐
java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...
java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...
Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...
java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket
Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...
Java NIO英文高清原版
Java IO NIO and NIO 2 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...
Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...
讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用
java nio2, Pro Java 7 NIO2
java_nio学习文档
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...
Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制
Java+NIO
java NIO详细教程,包括使用背景,实现原理,代码实现
java NIO.zip
Java IO NIO and NIO 2 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc
Java.NIO资源下载资源下载
简单的用Java的NIO读取文件的程序,给大家参考。