javaNio Filechannel
程序员文章站
2022-06-02 23:50:23
...
例子
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.concurrent.Future;
public class Pathss {
public static void main(String[] args) throws IOException {
RandomAccessFile input=new RandomAccessFile("E://output.txt","rw");//一定要用RandomAccessFile 不然有些通道的功能无法实现
FileChannel chan=input.getChannel();//获取通道
ByteBuffer buff=ByteBuffer.allocate((int)chan.size());//设置ByteBuffer的capacity(内存最大值)为文件的字节长度
buff.clear();//清空缓存,切换成读模式(capacity和limit值一样)
chan.read(buff);//读取 position值从0开始慢慢递增
byte[] bytes=new byte[buff.limit()];//长度为position的值一样
buff.flip();//切换成写模式 position变为0 capacity不变 limit变为读模式时position最后的位置
buff.get(bytes);//写入byte数组中 ,position慢慢递增
System.out.println(new String(bytes));
input.close();
}
}
具体的limit position capacity含义请到这里看。http://ifeve.com/buffers/
上一篇: MySQL 清除表空间碎片
下一篇: 微信小程序的button去边框