我想寫我鎖定的文件中的XML數據我有一個這樣的邏輯,但我的文件數據不是由該文本的數據替換,我有例外像如何在鎖定文件中寫入數據?
這樣的:異常的線程「主「 java.nio.channels.ClosedChannelException在 sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:110)在 sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:199)在 sun.nio .cs.StreamEncoder.writeBytes(StreamEncoder.java:218)at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:316)at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149)at jav a.io.BufferedWriter.close(BufferedWriter.java:266)在 java_io_Closeable $ close.call(來源不明)在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at locckGroovy.main(loccky .groovy:90)
。我應該改變什麼才能做到這一點?
RandomAccessFile ini = new RandomAccessFile(file, "rwd");
FileLock lock = ini.getChannel().tryLock();
try{
w=new BufferedWriter(Channels.newWriter(ini.getChannel(),"UTF-8"));
w.write(text);
}finally{
ini.close();
}
你在最後調用'w.close()'嗎? –
是的,我是..... ,,,,,,, –
更新後的代碼示例沒有編譯('ini'在'try'塊中聲明,不能在'finally'中訪問) –