并发修改文件问题 目前手上在做一个项目其中涉及到 对同一文件的并发修改问题。文件中存储的内容是一条一条的,但每一条的长度不定每次修改文件操作总是只修改其中的一条我想做到的是类似数据库中的行级锁,修改时只锁定修改的这一条,而不是锁定整个文件请问有没有方法办到。。 解决方案 » 免费领取超大流量手机卡,每月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,因为你又要对文件,同时还要写。 有关BufferedReader的几个问题 俄罗斯方块求解答 J2EE的学习需要些什么 如何将用文本编辑器构建的java应用程序用Jcreator或Jbuilder来调试 DataInputStream和FileInputStream在传输文件的时候有什么区别? 救java入门学习资料,邮箱:[email protected]谢谢!分不够++ 现在有三个小小的applet ,给大家实现下,给分的... java.lang.NoClassDefFoundError问题 错在哪 最简单的问题! 文本赋值给string问题 求windowbuilder pro插件
如果使用这种方法,最好将每条记录设置为定长,不然无法确定加锁位置