如何判断一个文件被使用?例如一个.txt文件,java程序怎么判断它被其他程序打开呢? 例如一个.txt文件,java程序怎么判断它被其他程序打开呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以使用jdk1.4的 nio(new io 的类来实现)下面是锁定一个文件的例子,你可以系统的学一下,就可以解决你的问题了,这个新加的nio可以解决不同的jvm之间的文件锁定问题,速度更快,功能更强,不过要学不少东东,一句话回答不了你的问题//: c12:FileLocking.java// {Clean: file.txt}import java.io.FileOutputStream;import java.nio.channels.*;public class FileLocking { public static void main(String[] args) throws Exception { FileOutputStream fos= new FileOutputStream("file.txt"); FileLock fl = fos.getChannel().tryLock(); if(fl != null) { System.out.println("Locked File"); Thread.sleep(100); fl.release(); System.out.println("Released Lock"); } fos.close(); }} ///:~ 附,老的io文件系统实现不了你的问题上面的例子你可以把sleep时间设长一点,然后用window的文本工具(如editplus)打开编辑后保存,系统会提示你文件正在被使用,不可保存 有歧义,文件被使用和被打开是不同的概念,比如Windows下一个.txt文件,用Notepad打开显示,其实文件读完以后已经关闭了,而打开并读取文件是一个极短暂的过程,如果你要判断是否有Notepad正在显示一个.txt文件是不可能的,因为Notepad并没有锁文件,任何别的程序可以打开并修改这个文件 viena(维也纳nn-实心木头人)说的对。文件被使用和被打开是不同的概念,我就是这个意思。想解决看到viena(维也纳nn-实心木头人)说的后看来是不可能的了。 文件打开方式还分好多种呢,你的问题除非用C(去内存中查找是否有这个文件的句柄),Java恐怕是有点难度吧 JFrame的子类调用repaint方法 有关问题 二进制串转成16进制的 GuI是什么?为什么说JAVA不适合做GUI? Item 11: Override clone judiciously (审慎的) java.lang包为什么不用继承,这是怎么实现的呢? java循环中执行多线程问题-如何在循环中等待一个线程结束后再自动开始新的线程 如何画饼状分析图 ☆没人知道啊..☆,..在框架中又new一个框架..!高手都挂了吗 高分!! 请问如何将一个数组里的数从大到小依次排列啊?????? 菜鸟的问题 这两个程序哪里不同了,可是结果为什么不一样 我手中的电子书书目清单
下面是锁定一个文件的例子,你可以系统的学一下,就可以解决你的问题了,这个新加的nio可以解决不同的jvm之间的文件锁定问题,速度更快,功能更强,不过要学不少东东,一句话回答不了你的问题//: c12:FileLocking.java
// {Clean: file.txt}
import java.io.FileOutputStream;
import java.nio.channels.*;public class FileLocking {
public static void main(String[] args) throws Exception {
FileOutputStream fos= new FileOutputStream("file.txt");
FileLock fl = fos.getChannel().tryLock();
if(fl != null) {
System.out.println("Locked File");
Thread.sleep(100);
fl.release();
System.out.println("Released Lock");
}
fos.close();
}
} ///:~