Demo

    1. package cn.itcast.demo05.nio;
    2. import java.io.FileNotFoundException;
    3. import java.io.FileOutputStream;
    4. import java.io.IOException;
    5. import java.nio.ByteBuffer;
    6. import java.nio.channels.FileChannel;
    7. /*
    8. NIO里面基于通道和缓冲区
    9. */
    10. public class Demo02 {
    11. public static void main(String[] args) throws IOException {
    12. //创建一个字节输出流
    13. FileOutputStream fos = new FileOutputStream("file10.txt");
    14. //通过这个流,获取一个通道
    15. FileChannel channel = fos.getChannel();
    16. //static ByteBuffer allocate(int capacity) 获取一个缓冲区
    17. ByteBuffer buff = ByteBuffer.allocate(1024);
    18. buff.put("你好".getBytes());
    19. buff.flip();//类似于刷新,进行写入前的准备。
    20. channel.write(buff);
    21. fos.close();
    22. }
    23. }

    Demo

    package cn.itcast.demo05.nio;
    
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    
    public class Demo03 {
        public static void main(String[] args) throws IOException {
            //创建字节输入流对象
            FileInputStream fis = new FileInputStream("file10.txt");
            //获取通道
            FileChannel channel = fis.getChannel();
            //获取缓冲区
            ByteBuffer byteArr = ByteBuffer.allocate(1024);
            //开始读取,把数据读取到缓冲区
            int len = channel.read(byteArr);
            //把缓冲区中的数据转成byte数组。
            byte[] bArr = byteArr.array();//把这个缓冲区里面的东西转成byte数组
            System.out.print(new String(bArr, 0, len));
    
            fis.close();
        }
    }