NIO边看边记 之 channel(二)
来源:互联网 发布:修改gps定位软件 编辑:程序博客网 时间:2024/06/04 20:14
通道channel就像流。通道中的数据总是先读到到buffer中(对于buffer来说是一个写操作),再从buffer中写到另一个通道总(相对于buffer来说是一个读操作)。
Channel主要分为两类:文件channel和网络channel,细分为4种。
FileChanel:从普通文件中读写数据
DatagramChannel:通过UDP读写网络中的数据
SocketChannel:通过TCP读写网络中的数据
ServerSocketChannel:监听新进来的TCP连接,对每个新进来的连接都创建一个SocketChannel。
其中FileChannel不可以切换到非阻塞模式,不能应用到selector中。而所有套接字channel都可以应用到非阻塞模式。
示例代码如下:
public static void main(String[] args) { try { //获取maven工程的resource的路径,这个获得的是绝对路径 String path = FileChannelTest.class.getResource("/").getPath(); //文件存放在resource目录下 String file = "data.txt"; RandomAccessFile randomAccessFile = new RandomAccessFile(path + file, "rw"); //创建channel FileChannel fileChannel = randomAccessFile.getChannel(); ByteBuffer byteBuffer = ByteBuffer.allocate(5000); //从channel中读取数据到buffer int byteRead = fileChannel.read(byteBuffer); while (byteRead != -1) { byteBuffer.flip(); while (byteBuffer.hasRemaining()) { System.out.println((char)byteBuffer.get()); } byteBuffer.clear(); byteRead = fileChannel.read(byteBuffer); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
0 0
- NIO边看边记 之 channel(二)
- 二、Nio之Channel
- Java 之NIO(二) - Channel
- (二)Java NIO Channel
- Java NIO编程实例之二Channel
- Java NIO 的前生今世 之二 NIO Channel 小结
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- Java NIO系列教程(二) Channel
- adt-bundle安装手顺及错误处理
- redis的简单使用
- Training Region-based Object Detectors with Online Hard Example Mining - cvpr 2016 oral
- SQLite的操作简单介绍
- cocoaPods 使用
- NIO边看边记 之 channel(二)
- 官网下载及安装mysql-5.7.12-winx64是需要解压版(ZIP)
- 完美解决listView 文字超链接点击事件和listitem点击事件冲突问题
- paper4—Multi-MPE_Trigger_Algorithm
- MFC:用另存为对话框保存文件
- JAVA中的数组工具类
- 解决No resource found that matches the given name 'android:Theme.Material.Light.DarkActionBar'
- React中prop和state的区别
- 二叉搜索树