Итак, я пытаюсь заблокировать файл, чтобы прочитать его, но я получаю IOException, есть идеи, почему?
public static void main(String[] args){
File file = new File("C:\\dev\\harry\\data.txt");
FileReader fileReader = null;
BufferedReader bufferedReader = null;
FileChannel channel = null;
FileLock lock = null;
try{
channel = new RandomAccessFile(file, "rw").getChannel();
lock = channel.lock();
fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);
String data;
while((data = bufferedReader.readLine()) != null){
System.out.println(data);
}
}catch(IOException e){
e.printStackTrace();
}finally{
try {
lock.release();
channel.close();
if(bufferedReader != null) bufferedReader.close();
if(fileReader != null) fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
и я получил эту ошибку IOException: The process cannot access the file because another process has locked a portion of the file
FileChannel
только читали, возможно ли это вообще, если вы можете показать мне, как использоватьFileChannel
для чтения строки? - person Thang Pham   schedule 14.06.2011