Tôi đang sử dụng mã sau để đọc một chuỗi phụ từ một tệp.Số phát hành Java NIO trên CharBuffer
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);
Tuy nhiên, điều này cho đầu ra "str =?" Ai có thể giúp tôi tại sao điều này xảy ra và làm thế nào để giải quyết vấn đề này? Xin lỗi, tôi mới trong NIO.
Điều bổ sung, khi tôi thêm System.out.println (bộ đệm); nó cho đầu ra "java.nio.DirectByteBufferR [pos = 0 lim = 16 cap = 16]".
System.out.println ((char) buffer.get (0)) cho đầu ra phù hợp nghĩa là ký tự thứ nhất.
nội dung của 'abc.txt' là gì? – Jeffrey
@Jeffrey, "011000111 ......" chuỗi 0/1 bit. – Arpssss
@ Jeffrey, điều bổ sung khi tôi thêm System.out.println (bộ đệm) nó cung cấp cho đầu ra, "java.nio.DirectByteBufferR [pos = 0 lim = 16 cap = 16]" – Arpssss