FileChannel的基本使用
package com.taobao.nio.channel; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; /** * FileChannel的基本使用。 */ public class AcquireChannel { public static void main(String[] args) throws Exception { // 根据FileOutputStream获得通道FileChannel FileChannel channel = new FileOutputStream("D:/a.txt").getChannel(); // 字节方式写入 channel.write(ByteBuffer.wrap("hello, NIO world in java!".getBytes())); channel.close(); // 根据FileInputStream获得通道FileChannel channel = new FileInputStream("D:/a.txt").getChannel(); // ByteBuffer分配空间,16个字节 // 这里需要知道 byte是1字节, short和char是2字节,int和float是4字节 // long和double是8字节 1byte=8bit 。 基本只是还是必须记住的。 ByteBuffer buff = ByteBuffer.allocate(16); // 字节数组数据装入buff, channel.read(buff); // 反转此缓冲区 buff.flip(); // 逐个输出,因为分配了16,所以输出的时候只能输出hello, NIO world,剩下的 // 因为空间关系被截断。 while(buff.hasRemaining()){ System.out.print((char)buff.get()); } channel.close(); } }
来源:http://www.cnblogs.com/alipayhutu/archive/2012/05/09/2492037.html
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步