准备学一下Netty,先从NIO的三大组件开始。先ByteBuffer
- package com.xjc.springcloundtest;
-
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.nio.ByteBuffer;
- import java.nio.channels.FileChannel;
-
- public class Main {
- public static void main(String[] args) throws IOException {
- FileChannel channel = new FileInputStream("4.txt").getChannel();
- ByteBuffer byteBuffer = ByteBuffer.allocate(10);
- while (true){
- int len = channel.read(byteBuffer);
- System.out.println("读取的字节数:"+len);
- if(len==-1){
- break;
- }
- byteBuffer.flip();
- while (byteBuffer.hasRemaining()){
- byte b = byteBuffer.get();
- System.out.println((char)b);
- }
- byteBuffer.clear();
- }
-
- System.out.println("Hello world!");
- }
- }
123456789abc
- C:\Users\ThinkPad\.jdks\openjdk-21.0.2\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=51792:D:\Program Files\JetBrains\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\ThinkPad\IdeaProjects\untitled12\target\classes com.xjc.springcloundtest.Main
- 读取的字节数:10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- a
- 读取的字节数:2
- b
- c
- 读取的字节数:-1
- Hello world!
-
- Process finished with exit code 0