は、私は、このようなロジックを持っている私のロックされたファイル内のXMLデータを書きたいが、私のファイルのデータは、このテキストデータに置き換えられていないと私はロックされたファイルにデータを書き込む方法は?
のように、この例外が発生しました:「メインスレッドで例外を sun.nioでsun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:199)で sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:110)の「 java.nio.channels.ClosedChannelException .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 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) で で java_io_Closeable $ close.call(不明なソース)でa.io.BufferedWriter.close(BufferedWriter.java:266) 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()'を呼び出していますか? –
はいi do ..... ,,,,,, –
更新されたコード例はコンパイルされません( 'ini'は' try'ブロックで宣言され、 'finally'ではアクセスできません) –