java的NIO
我们知道java的流是单向的,可读可写类似于channel里的通道,
1、区别在于流是半双工,通道是全双工
2、通道读写要buffer
channel实现
FileChannel 从文件中读写数据
DatagramChannel UDP读写网络中数据
SocketChannel TCP读写网络…
ServerSocketChannel :像WEB服务器对每个进入连接创建SocketChannel
举个栗子
RandomAccessFile aFile = new RandomAccessFile(“data/nio-data.txt,"rw”);
FileChannel buf = aFile.getChannel();
ByteBuffer buf = ByteBuffer.allocate(48);
int bytesRead = intCHannel.read(buf);
while (bytesRead ! = -1){
System.out.println("Read " +bytesRead);
buf.flip;
while(buf.hasReamining()){
System.out.prilt((char)bug.get());
}
buf.clear();
bytesRead = inChannel.read(buf);
}
aFile.close();