我正在使用以下代碼從文件讀取子序列。CharBuffer上的Java NIO問題
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))給出正確的輸出表示第一個字符。
什麼是'abc.txt'的內容? – Jeffrey 2012-04-28 16:22:09
@Jeffrey,「011000111 ......」系列0/1位。 – Arpssss 2012-04-28 16:23:15
@Jeffrey,額外的東西,當我添加System.out.println(緩衝區)它給出輸出,「java.nio.DirectByteBufferR [pos = 0 lim = 16 cap = 16]」 – Arpssss 2012-04-28 16:26:36