• 【Java学习笔记】FileChannel的学习


    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件 和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的选择器。

    写文件

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    import java.nio.channels.FileChannel;
    public class NioBlockout {
        public static void main(String arg[]) {
            try {
                FileOutputStream fos = new FileOutputStream("nioblock");
                FileChannel channel = fos.getChannel();
                ByteBuffer bytebuffer = ByteBuffer.allocate(20);
                CharBuffer charbuffer = bytebuffer.asCharBuffer();
                charbuffer.put("ABCDEFGHI");
                channel.position(20);
                channel.write(bytebuffer);
                channel.close();
            } catch(IOException e) {
                System.out.println(e);
            }
        }
    }

    文件buffer

    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.channels.FileChannel;
    import java.nio.channels.FileChannel.MapMode;
    import java.nio.MappedByteBuffer;
    import java.nio.CharBuffer;
    public class NioMap {
        public static void main(String arg[]) {
            try {
                RandomAccessFile raf = new RandomAccessFile("nioblock","rw");
                FileChannel channel = raf.getChannel();
                MappedByteBuffer bytebuffer = channel.map(
                        FileChannel.MapMode.READ_WRITE,
                        20,18); // position and size
                CharBuffer charbuffer = bytebuffer.asCharBuffer();
                bytebuffer.load();
                char ch = charbuffer.get(3);
                System.out.println("Character: " + ch);
                charbuffer.put(3,'X');
                channel.close();
            } catch(IOException e) {
                System.out.println(e);
            }
        }
    }

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

  • 相关阅读:
    Flask把变量注册到模板中
    $.each与$(data).each区别
    【Python备忘】python判断文件和文件夹是否存在
    ISP图像质量自动化测试方法
    使用微软的(how-old.net)构建智能门店管理系统
    在virtualenv中安装libxml2和libxslt
    Python 装饰器学习以及实际使用场景实践
    tensorflow零起点快速入门(4) --入门常用API
    tensorflow零起点快速入门(3)
    树莓派和STM32通过USB和串口通信记录
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2822311.html
Copyright © 2020-2023  润新知