并发修改文件问题 目前手上在做一个项目其中涉及到 对同一文件的并发修改问题。文件中存储的内容是一条一条的,但每一条的长度不定每次修改文件操作总是只修改其中的一条我想做到的是类似数据库中的行级锁,修改时只锁定修改的这一条,而不是锁定整个文件请问有没有方法办到。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在NIO中,可以对文件的指定部分加锁,而不是整个文件FileChannel.tryLock(long position, long size, boolean shared)//非阻塞FileChannel.lock(long position, long size, boolean shared)//阻塞这两个方法都返回FileLock对象,通过position和size指定具体加锁部分如果使用这种方法,最好将每条记录设置为定长,不然无法确定加锁位置 如果我新的记录的长度大于原来记录的长度,那么此时写的时候会不会覆盖后一条记录的开始部分?我打算用RandomAccessFile做的 不知道有没有更合适的 如果,使用固定长度的字节数,那么每条记录的长度必需小于等于 这个固定他长度数。这个没有关系,RandomAccessFile比较方便。 如果我新的记录的长度大于原来记录的长度,那么此时写的时候会不会覆盖后一条记录的开始部分?如果修改后的长度会变的话,这种方法肯定是不行的啊还是得让记录的大小固定,比如可以把所有记录的长度设定为最大的记录的长度,也就是3L说的方法2。在用文件记录数据时,一般情况下都是使用固定长度的记录,否则不能实现随机存取。就得用RandomAccessFile,因为你又要对文件,同时还要写。 选择题,求解释,这会犯晕。。。。 初学者提问 窮人問一個問題。解答一下下面的程序是什麼意思。 java中读EXECL文件问题? ----向jTextPane添加滚动条的问题------ 在线等!!!!!!!!!!!!!!!!!!!!!!!!! 百思不得其解:2004年上半年程序员考试题 中的一个题目 怎么让对话框响应某个按钮的鼠标事件后自动关闭,除了hide()还有其它方法吗? Object 里的wait() 和Thread 里面的yield()有什么区别 怎么让我的applet显示在网页上?高分! 文本赋值给string问题 求windowbuilder pro插件
如果使用这种方法,最好将每条记录设置为定长,不然无法确定加锁位置