import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class FileLockExa
{
  public static void main(String[] args) 
{ int b;
  byte tom[]=new byte[100];
  try
  { File f=new File("G://java code/jackxu/src","good.txt");
RandomAccessFile input=new RandomAccessFile(f,"rw");
FileChannel channel=input.getChannel();
while((b=input.read(tom, 0, 10))!=-1)
{ FileLock lock=channel.tryLock();
  String s=new String(tom,0,b);
  System.out.println(s);
  try
  { Thread.sleep(1000);
    lock.release();  
  }
  catch(Exception e){System.out.println(e);}
  input.close();

  
  }
  catch(Exception ee){System.out.println(ee);}
}}
上面的程序是一个文件锁在流输出语句中的使用,这儿为什么读取了good.txt十个字节的数据之后,就输出了ee中的异常,“外面java.io.IOException: Stream Closed”,线程过1秒解锁,就应该继续读啊?我把解锁的语句lock.release();去掉也是和第一次输出的结果一致,这个又是怎么回事???