zoukankan      html  css  js  c++  java
  • 【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/

  • 相关阅读:
    数据库基本概念
    Python语言特性之5:自省
    Python语言特性之4:类变量和实例变量
    Python语言特性之3:@staticmethod和@classmethod
    Python语言特性之2:元类
    Python语言特性之1:函数参数传递
    基础数学与算法学习
    推荐系统资料
    MySQL相关
    Python科学计算包模块的安装(ubuntu)
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2822311.html
Copyright © 2011-2022 走看看