1、socket 可以理解为传输层的一个编程规范
2、bio 以stream的方式
nio 以channel的方式
nio向本地文件中写数据
@Test //往本地文件中写数据 public void test1() throws Exception{ //1. 创建输出流 FileOutputStream fos=new FileOutputStream("basic.txt"); //2. 从流中得到一个通道 FileChannel fc=fos.getChannel(); //3. 提供一个缓冲区 ByteBuffer buffer=ByteBuffer.allocate(1024); //4. 往缓冲区中存入数据 String str="hello,nio"; buffer.put(str.getBytes()); //5. 翻转缓冲区 buffer.flip(); //6. 把缓冲区写到通道中 fc.write(buffer); //7. 关闭 fos.close(); }
从本地文件读取数据
@Test //从本地文件中读取数据 public void test2() throws Exception{ File file=new File("basic.txt"); //1. 创建输入流 FileInputStream fis=new FileInputStream(file); //2. 得到一个通道 FileChannel fc=fis.getChannel(); //3. 准备一个缓冲区 ByteBuffer buffer=ByteBuffer.allocate((int)file.length()); //4. 从通道里读取数据并存到缓冲区中 fc.read(buffer); System.out.println(new String(buffer.array())); //5. 关闭 fis.close(); }
nio网络连接demo
java bio nio netty