Я использую следующий код для чтения последовательности 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-й символ.