1.概要
准备学一下Netty,先从NIO的三大组件开始。先ByteBuffer
2.代码
2.1 主函数
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!");
}
}
2.2 准备的文件(4.txt)
123456789abc
3.运行结果
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