使用 java nio 从 FileChannel 读取

你能告诉我一个简单的例子,从名为example.txt的文件中读取并使用java NIO将所有内容放入我的 java 程序中的字符串中吗?


以下是我目前使用的:


FileChannel inChannel = FileChannel.open(Paths.get(file),StandardOpenOption.READ);

CharBuffer buf=ByteBuffer.allocate(1024).asCharBuffer();

while(inChannel.read(buf)!=-1) {

    buf.flip();

    while(buf.hasRemaining()) {

        //append to a String

        buf.clear();

    }

}


qq_遁去的一_1
浏览 115回答 1
1回答

Helenr

试试这个:public static String readFile(File f, int bufSize) {    ReadableByteChannel rbc = FileChannel.open(Paths.get(f),StandardOpenOption.READ);    char[] ca = new char[bufSize];    ByteBuffer bb = ByteBuffer.allocate(bufSize);    StringBuilder sb = new StringBuilder();    while(rbc.read(bb) > -1) {        CharBuffer cb = bb.asCharBuffer();        cb.flip();        cb.get(ca);        sb.append(ca);        cb.clear();    }    return sb.toString();}ca如果按 char 写入 char 在性能方面是可以接受的,那么您可以不使用中间人缓冲区。在这种情况下,您可以简单地sb.append(cb.get()).
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java