Проблема Java NIO в CharBuffer

Я использую следующий код для чтения последовательности sub -из файла.

FileChannel channel = new RandomAccessFile("abc.txt", "r").getChannel();
ByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
CharBuffer cbuf = buffer.asCharBuffer();

String str = cbuf.subSequence(0, 1).toString();
System.out.println("str = " + str);

Однако это дает вывод «str = ?» Может ли кто-нибудь помочь мне, почему это происходит и как это решить? Извините, я новичок в NIO.

Дополнительная вещь, когда я добавляю System.out.println (buffer ); он дает вывод «java.nio.DirectByteBufferR[pos=0 lim=16 cap=16]».

System.out.println ((char )buffer.get (0 ))дает правильный вывод означает 1-й символ.

5
задан Arpssss 28 April 2012 в 16:36
поделиться