我想写我锁定的文件中的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'中访问) –