Java文件锁
来源:互联网 发布:linux 当前路径命令 编辑:程序博客网 时间:2024/04/29 01:37
直接上代码,方便日后查看
FileChannel channel = null; FileLock lock = null; try{System.out.println("正在处理"+handleFile.getName());RandomAccessFile raf = new RandomAccessFile(handleFile, "rws");channel = raf.getChannel(); //锁住文件,独占此文件,如果已经被锁,则抛出异常lock = channel.tryLock(); if(lock != null){ MappedByteBuffer mbb= channel.map(FileChannel.MapMode.READ_WRITE, 0, (int)raf.length()); byte[] buf = new byte[(int) raf.length()]; for(int i=0;i<raf.length();i++){ buf[i]= mbb.get(i); } //根据buf转成string,..... //其他操作... //操作完删除文件 file.delete()不行,只能写在finally里,但是windows下不行,linux下可以 //这里还不知道怎么在锁里删除handleFile文件,目前没找到办法,只能放到锁外删除了,这样就删除操作没办法在一个锁事务了 }}catch(OverlappingFileLockException lockException){logger.info("线程读取的文件已经被占用!");}catch(Exception e){e.printStackTrace();}finally{if(lock != null) { try { lock.release(); lock = null; } catch (IOException e) { e.printStackTrace(); } } if(channel != null) { try { channel.close(); channel = null; } catch (IOException e) { e.printStackTrace(); } } if(handleFile.delete()){//windows下不行,linux下可以 }else{ System.out.println(handleFile.getName()+"删除失败!"); }}
0 0
- java 文件锁
- java简单文件锁
- Java中的文件锁
- JAVA文件锁
- Java文件锁
- JAVA文件锁
- java 文件锁
- java文件锁
- java中的文件锁
- java的文件锁
- Java文件锁
- java 文件锁
- Java NIO-文件锁
- Java NIO 文件锁
- JAVA 文件锁 FileLock
- java多线程读写文件之文件锁
- java进程文件锁FileLock
- java新IO---文件锁
- 使用Jenkins配置自动化构建
- memcache 安装配置
- spark-sql 不兼容的hive语法列表
- 写给做设计的自己的四个建议
- javascript DOM innerHTML createElement createTextNode
- Java文件锁
- 数据结构之排序算法
- LeetCode-Linked List
- 基础练习 十六进制转八进制
- python实用技巧(一)
- 模板生成系统
- mysql表的死锁解决
- 提高SQL查询效率 的10大方法
- 《java》笔记<三>