import java.io.BufferedReader
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.InputStreamReader
import java.nio.channels.FileLock
/**
* 文件加锁
* @author wangjian
*/
public class LockTester {
public static void main(String[] args) throws Exception{
//加上true参闷锋态数,不会重新生成一个新的文件。
FileOutputStream fos = new FileOutputStream("d:/a.txt",true)
FileLock fl = fos.getChannel().tryLock()
new ReadLockedFile().start() //试图读取,不成功。
if(fl!=null){
System.err.println("文件已经锁定..")
System.err.println(fl.isShared())
Thread.sleep(1000*60) //锁定1分蚂源钟
fl.release() //解除锁定
System.err.println("解除锁定..")
}
}
}
/**
* 用另一个线程读取已经锁基败定的文件。
*/
class ReadLockedFile extends Thread{
public void run(){
try{
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream("d:/a.txt")))
String str = br.readLine()
while(str!=null){
System.err.println(str)
str = br.readLine()
}
br.close()
}catch(Exception e){
e.printStackTrace()
}
}
}
首先,使用eclipse ,在项目右键->tearm->cleanup , *** 作了几次问题依然存在。 然后使用命令:cd E:\gradlepro\cloudserver 。
在Java Web中clean的作用还是相当重要的,在一个项目中我们经常遇见这样的问题,当我们已经修改Action中的处理代码,但是运行发现还是未修改之前的处理方法,这个时候clean一下也许就会解决问题。
eclipse为了提高效率,并不是每次启动项目都会检毕亩查插件,通过clean就是强制eclipse去检查已安装插件。我们都知道.java文件是通过编译成.class文件运行的,而clean后会删除已经编译腔逗生成的class文件并重新部署项目。总而言之就是强制检手圆森查已安装插件,清除以前编译的信息,重新部署项目。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)