MappedByteBuffer
の READ_WRITE モードをテストしたい。しかし、例外があります:
Exception in thread "main" java.nio.channels.NonWritableChannelException
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:755)
at test.main(test.java:13)
私はそれを修正する必要があるとは思いません。前もって感謝します。
今、私はプログラムを修正しましたが、例外はありません。しかし、システムは一連のガベージ文字を返しますが、実際にはファイル in.txt には文字列 "asdfghjkl" しかありません。コーディング スキームがこの問題を引き起こしているのではないかと思いますが、それを確認して修正する方法がわかりません。
import java.io.File;
import java.nio.channels.*;
import java.nio.MappedByteBuffer;
import java.io.RandomAccessFile;
class test{
public static void main(String[] args) throws Exception{
File f= new File("./in.txt");
RandomAccessFile in = new RandomAccessFile(f, "rws");
FileChannel fc = in.getChannel();
MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, f.length());
while(mbb.hasRemaining())
System.out.print(mbb.getChar());
fc.close();
in.close();
}
};