JAVA NIO二(Channel)

JAVA NIO—Channel

一.概述

NIO中的Channel类似标准IO中的流,不同的是Channel可同时读写,但流要么读,要么写,不能同时读写,而且Channel是非阻塞的,Channel的子类包含以下四个:

  • FileChannel:文件读写数据。
  • DatagramChannel:UDP网络连接读写数据。
  • SocketChannel:TCP网络连接数据。
  • ServerSocketChannel:TCP服务器读写数据。

二.FileChannel

FileChannel是连接到文件的通道。使用FileChannel可以从文件中读取数据或将数据写入文件。

public static void main(String[] args) throws Exception {
		RandomAccessFile file = new RandomAccessFile("d:/test.txt", "rw");
		FileChannel channel = file.getChannel();
		
		String newData = "hello world nio test";

		ByteBuffer buf = ByteBuffer.allocate(48);
		buf.clear();
		buf.put(newData.getBytes());

		buf.flip();

		while(buf.hasRemaining()) {
		    channel.write(buf);
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值