`
libg
  • 浏览: 58593 次
  • 性别: Icon_minigender_1
  • 来自: 河北邯郸
社区版块
存档分类
最新评论

对文件加锁应怎样解决呢?

阅读更多

   对文件加锁应怎样解决呢?

           目的: 对文件读写时进行异步化、

                              我只对一个文件进行 读、写、清空、操作;进行异步化

                              实现的步骤顺序是:

                                  《1》、随时对文件进行写操作

                                  《2》、一分钟后去读取这个文件的内容、然后再清空内容、

                                  《3》、就这么一直循环的走。

                                   《4》、在以上《1、2》步骤之间都包含对文件进行加锁。

               恩、我遇到的问题是:

                                    《1》、如果在读取文件的时候、刚读取完、这时对文件进行了解锁、解锁后另一个文件对象就可以

                                操作这个文件了、      偏偏在这时对文件进行了写、然而在读完后的这个方法中却要清空这个文件的内容、

                               这样一来数据就不完整了不是。这是我的一个难题啊、请大家仔细看看我的说明、然后给我一个答案谢谢。

            请大家吧、给我一个好的解决方案!!!

 

分享到:
评论
10 楼 cbhyk 2007-11-13  
java.nio.channels.FileChannel.tryLock()
9 楼 wl95421 2007-11-13  
千万不要忘记删除,否则你就死了
可以参考Lucene的代码
8 楼 libg 2007-11-12  
  恩、ok、我明白了。
7 楼 caisd 2007-11-12  
某个线程读取的时候,生成一个以.lock结尾的文件,其他要读时,先判断是否存在这lock文件
6 楼 libg 2007-11-12  
   恩、我还是不会啊、你就在详细一点吧、举一个例子如何呢?
5 楼 timerri 2007-11-12  
他是说,用其他的文件作为锁使用。自己实现锁机制
4 楼 libg 2007-11-12  
   上面那位大哥你说的是什么意思啊!!!

    小弟看不懂啊!!!
   
   能不能详细一点阿!!!
3 楼 wl95421 2007-11-12  
象Eclipse或者lucene一样,使用.lock文件
2 楼 libg 2007-11-12  
恩、你这个思路我懂、但是这时已对文件进行了加锁、如果在解锁之前在创建一个文件对象执行的话回报错的
   错误信息:另一个程序已锁定文件的一部分,进程无法访问。

   但是如果用当前这个对象的话我不知道因怎样清空这个文件
  
如下是我使用的方法写的:
public String setAttribute(String key, String value) {

FileLock flock = null;
String oldValue = null;
FileChannel lockfc = null;
RandomAccessFile fis = null;
try {
// 打开一个临时的文件,注意同一共享内存,该文件名要相同。
fis = new RandomAccessFile(filename, "rw");
// 获得文件通道
lockfc = fis.getChannel();
// 获得文件的独占锁,若文件已被人锁定,则一直等待
flock = lockfc.lock();
oldValue = (String) recTreeMap.put(key, value);//recTreeMap对象是一个全局TreeMap对象
// set the file point to the beginning of the file
lockfc.position(0);
ObjectOutputStream out;
out = new ObjectOutputStream(Channels.newOutputStream(channel));
out.writeObject(recTreeMap);
out.close();
} catch (IOException ee) {
ee.printStackTrace();
} finally {
// if flock is not null, we should release it
try {
if (flock != null)
if (flock.isValid()) {
flock.release();
}
if (lockfc != null)
lockfc.close();
if (fis != null)
fis.close();

} catch (ClosedChannelException o) {
o.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception er) {
er.printStackTrace();
}
}
}
我是这样写进去的:但是在读的时候也是使用相同的方法进行读的。
就是在读的时候怎样使用当前的对象进行清空这个文件中的内容。
1 楼 rtdb 2007-11-12  
> 在读取文件的时候、刚读取完、这时对文件进行了解锁
> 然而在读完后的这个方法中却要清空这个文件的内容

所以,应当是清空这个文件的内容后,再解锁

相关推荐

    Linux系统对文件进行加锁

    本篇文章将深入探讨如何使用Flock函数在Linux中对文件进行加锁,并解释其工作原理和注意事项。 Flock函数是Linux提供的系统调用,用于对文件描述符上的文件或文件区域进行锁定。它允许程序在文件系统级别进行同步,...

    通过数据库给文件加锁

    本篇文章将深入探讨“通过数据库给文件加锁”的概念、原理以及实践方法。 文件锁定通常在多用户环境中至关重要,例如在文件共享系统、协同编辑软件或任何需要同时处理相同资源的应用程序中。数据库系统提供的锁机制...

    svn加锁后的解决办法

    SVN(Subversion)是一个版本控制系统,用于管理对文件和目录版本的跟踪。使用SVN时,开发者可以进行检出(checkout)、更新(update)、提交(commit)和锁定(lock)等操作。当出现文件被意外锁定的情况时,可能会...

    旅之星文件夹加锁工具使用说明

    ### 旅之星文件夹加锁工具使用说明 #### 一、概述 旅之星文件夹加锁工具是一款专门针对旅之星品牌的移动存储设备设计的安全管理软件。该工具的主要功能是为用户的文件夹提供加密保护,确保数据的安全性。下面将...

    便携式文件夹加锁小工具

    标题中的“便携式文件夹加锁小工具”指的是一个轻量级的应用程序,它能够帮助用户保护他们的私人文件夹,防止未经授权的访问。这样的工具通常具有简单易用的界面,用户可以快速设置密码,对特定的文件夹进行加密,...

    文件夹加锁王2009企业版

    “文件夹加锁王2009企业版”是一款专为企业用户设计的文件和文件夹加密工具,旨在帮助用户对重要数据进行加密和保护。通过这款软件,企业可以轻松地锁定和隐藏其内部的重要文件夹,防止非法访问和篡改,确保公司信息...

    计算机软件-商业源码-查看某一文件被谁加锁.zip

    当一个用户或进程对文件加锁后,其他用户尝试修改时会被阻止,直到锁被释放。文件锁定可以是共享锁(允许多个读取,但不允许写入)或独占锁(仅允许一个用户读写)。 4. **文件锁定机制**:不同的操作系统和编程...

    cdm加锁工具

    综上所述,"CMD加锁工具 2008"可能具备上述部分或全部特性,为用户提供了一套全面的数据保护解决方案。在实际应用中,用户需要根据自身的具体需求选择合适的CDM工具,并定期更新和维护,以确保数据安全和系统的稳定...

    usb加锁王

    3. 文件权限管理:用户可以设定每个文件或文件夹的访问权限,比如读取、写入、删除等,限制他人对USB设备上的特定文件进行操作。 4. 隐蔽模式:软件还提供一种隐蔽模式,使得USB加锁王在运行时不显示任何界面,提高...

    文件夹加锁隐藏伪装专家

    是解决你文件保密的最佳助手! 软件功能特点: 1. 操作简单:本软件是真正免安装,下载后为单一程序,直接运行即可使用,软件可放在任何地方。 2. 使用不留痕: 使用后不留任何痕迹,根本没人知道你...

    PHP对文件进行加锁、解锁实例

    文件加锁是解决这个问题的一种有效手段,它允许你控制对文件的访问,确保在任何时刻只有一个进程可以读取或写入文件。`flock()` 函数是PHP提供的一种用于文件加锁的机制。 ### flock() 函数 `flock()` 函数用于在...

    usb加锁王 v3.0

    《USB加锁王 v3.0:保护个人数据安全的利器》 在信息化时代,USB设备作为便携式存储工具,被广泛应用于数据传输和备份。然而,这也带来了一定的安全隐患,因为任何人都可能利用USB接口轻易地窃取或篡改您电脑上的...

    绿色加锁软件

    用户通过文件加锁功能,可以确保自己的敏感信息得到妥善保护。同时,掌握正确的使用技巧,选择合适的软件,以及遵循安全指南,都是提高个人隐私保护意识和能力的重要步骤。随着网络安全威胁的不断增加,选择合适的...

    PHP使用flock实现文件加锁的方法

    在PHP编程中,文件加锁是一个重要的概念,特别是在多用户并发访问同一文件时,为了防止数据的不一致性和冲突,我们需要使用文件加锁机制。`flock()` 函数是PHP中用于实现文件加锁的关键函数,它允许在跨平台的环境中...

    加锁的队列操作示例源代码

    "加锁的队列操作示例源代码"提供了一个解决方案,通过实现一个加锁的缓冲区类来支持生产者消费者模式。这个模式是并发编程中的经典设计模式,它允许线程之间有效地共享资源,而不会出现数据竞争。 生产者消费者模式...

    文件夹加锁王

    《文件夹加锁王》是一款专门针对个人及企业用户设计的高效、安全的文件和文件夹加密软件。这款软件的企业版2013_9.35版本在保护用户隐私和敏感数据方面表现出色,提供了强大的加密功能,确保您的重要信息不被未经...

    便携式文件夹加锁工具

    "便携式文件夹加锁工具"是为了解决这一需求而设计的软件,它允许用户对U盘或者电脑上的文件夹进行快速加密,确保只有授权的用户能够访问这些敏感信息。 该工具的核心功能包括: 1. **便携性**:作为一个便携式应用...

    文件夹加锁软件——易锁

    文件夹加锁软件 :一般其它加密软件,通常需要手工执行加密动作或需将文件保存于特定磁盘目录中,大都是“保存”那一瞬间才能进行加密。这样操作比较麻烦,且效率、安全、便捷、广泛性等也都不佳!而EZ-Lock是通过一...

    VC++加锁文件检查工具

    首先,我们要理解文件加锁的概念。在多任务操作系统中,为了防止多个进程同时修改同一文件导致数据冲突,系统会采用文件锁机制。当一个进程打开并写入一个文件时,它会请求系统对文件进行加锁,其他试图访问该文件的...

    AutoCAD加锁程序

    3. **测试**:在实际使用前,应在非关键项目上测试加锁脚本,确认其功能正常且不会影响其他操作。 4. **培训**:如果团队中有多人使用,确保所有相关人员都理解如何正确使用和解除锁定。 5. **更新维护**:随着Auto...

Global site tag (gtag.js) - Google Analytics