初学者关于读写文件加锁 基础问题一点 报占用一点小疑惑 百思不得其解 求解答
package interview_prepared;
import java.io.File;
//实现文件读写加锁
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
public class FileReadWrite
{
public static void main(String[] args) throws IOException, InterruptedException
{
//String path = Thread.currentThread().getContextClassLoader().getResource("F:\\java\\java_code\\review\\ReadFile.java").getPath();
File file = new File("F:\\java\\java_code\\review\\ReadFile.java");
try
{
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream("writehere.txt");
FileChannel fcin = fis.getChannel();
FileChannel fcout = fos.getChannel();
FileLock flin = null;
while(true){
try {
flin = fcin.tryLock();
break;
} catch (Exception e) {
System.out.println("有其他线程正在操作该文件,当前线程休眠1000毫秒");
Thread.sleep(1000);
}
}
ByteBuffer bbuffin = ByteBuffer.allocate(32);
while(fcin.read(bbuffin)!= -1)
{
bbuffin.flip();
FileLock flout = fcout.tryLock();
fcout.write(bbuffin);
flout.release();
System.out.println(bbuffin);
bbuffin.clear();
}
flin.release();
fos.close();
fis.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}上面是我本人的程序 那天偶然看见有人说读写文件加锁的问题 我就自己写了一个 发现有错误 一直提示 读文件加锁加不上,一直卡其他进程占用 注释掉读文件部分之后 发现写文件可以加锁加上,不知道是什么问题,想请教一下大家。下面给出控制台 拜托啦 谢谢 谢谢
...全文
相关推荐
JAVA初学者在学习的过程中总是会遇到一些很疑惑的问题
JAVA初学者在学习的过程中总是会遇到一些很疑惑的问题,往往是知其然不知其所以然,下面针对这些基础的也是经常碰到的问题进行一个详细的解答,以便后来者少走弯路,知其然知其所以然。
解锁猎人:文件解锁与删除工具使用指南
为了满足不同用户的个性化需求,我们的工具将允许用户进行外观主题和字体大小的自定义。实现方式包括:主题切换器:用户可以在多种预设主题中快速切换。自定义选项:除了预设主题之外,用户还可以选择颜色、字体样式等,进行深度定制。响应式设计:确保界面在不同分辨率和设备上都保持良好的可读性和可用性。
android初学者疑惑解答
本文档为android初学者常见的疑惑进行详细解答。
关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答.
关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答. 关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答. 关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答. 关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答.
LabVIEW 初学者常见问题及解答
LabVIEW 初学者常见问题及解答 总结了一些学习labvIEW常见的问题。 能够对刚学labvIEW的新手有很好的指导作用。


Java SE
