最近在使用Java NIO读取一篇文章(txt),是使用ByteBuffer读取的。代码如下:
RandomAccessFile aFile = new RandomAccessFile("E:/test1.txt", "rw");
FileChannel inChannel = aFile.getChannel();
ByteBuffer buf = ByteBuffer.allocate(1024);
int bytesRead = inChannel.read(buf); //read into buffer.
while (bytesRead != -1) {
buf.flip(); //make buffer ready for read
while(buf.hasRemaining()){
System.out.print((char) buf.get());// read 1 byte at a time
}
buf.clear(); //make buffer ready for writing
bytesRead = inChannel.read(buf);
}
aFile.close();
运行的结果显示是乱码,如:ᄏ₩ワᆲロᆴ¥ᄑユ¦ᄌᄎ│ÿ