KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
As most should know close() also closes any streams uses. This allows the follow code: BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(...))); ... br.close(); This is nice, since we don't need a reference to FileInputStream and remember to close it. But does it also work for FileLock s? final FileInputStream fis = new FileInputStream(new File("buffer.txt")); final FileChannel c = fis.getChannel(); final FileLock lock = c.lock(0L, Long.MAX_VALUE, true); final BufferedReader br = new BufferedReader(new InputStreamReader(fis)); try { while(br.ready()) { System.out.println(br.readLine()); } } finally { br.close(); } I've tried this code and the lock is correctly released when br.close() is called, but is is safe to do so? The Closeable JavaDoc says, "Closes this stream and releases any system resources associated with it." Am I safe to assume that I am using close() as specified to release() the lock?
Tags (comma-separated)
Save Edits
Cancel