相关文章推荐
粗眉毛的硬币  ·  通过Java ...·  1 月前    · 
卖萌的眼镜  ·  c# checkbox每次打开都会触发事件 ...·  1 年前    · 
气宇轩昂的领带  ·  如何在React函数组件中等待多个useSt ...·  1 年前    · 
多情的啄木鸟  ·  JavaScript 页面跳转、页面重定向 ...·  1 年前    · 
聪明的莲藕  ·  RuntimeInformation ...·  1 年前    · 
跑龙套的圣诞树  ·  Visual Studio Code / ...·  2 年前    · 
Code  ›  通道和FileChannel的使用开发者社区
bytebuffer
https://cloud.tencent.com/developer/article/1470184
慷慨大方的苦瓜
2 年前
作者头像
Java栈
0 篇文章

通道和FileChannel的使用

原创
前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > Java栈 > 通道和FileChannel的使用

通道和FileChannel的使用

原创
作者头像
Java栈
修改 于 2019-07-24 10:34:22
1.1K 0
修改 于 2019-07-24 10:34:22
举报

Java NIO FileChannel

Java NIO FileChannel是连接文件的通道。使用FileChannel,您可以从文件中读取数据和将数据写入文件。Java NIO FileChannel类是NIO用于替代使用标准Java IO API读取文件的方法。

FileChannel 无法设置为非阻塞模式。它总是以阻止模式运行。

开启FileChannel

使用之前, FileChannel 必须被打开,但是你无法直接打开FileChannel。需要通过InputStream,OutputStream或RandomAccessFile获取FileChannel。

以下是通过RandomAccessFile打开FileChannel的方法:

RandomAccessFile aFile = new RandomAccessFile(“data / nio-data.txt”,“rw”);
FileChannel inChannel = aFile.getChannel();

从FileChannel读取数据

要从 FileChannel 读取数据,您需要调用 read() 方法。

代码展示:

ByteBuffer buf = ByteBuffer.allocate(48);
int bytesRead = inChannel.read(buf);

首先:给 Buffer 分配大小, 从中FileChannel读取的数据会被读入 Buffer 。

其次:调用FileChannel的read() 方法。这个方法从FileChannel读取数据读入到 Buffer 。 read() 方法返回值是 int类型,表示 多少个字节被插入 Buffer 。如果返回-1,则到达文件结尾即文件读取完成。

将数据写入FileChannel

使用 Fwrite() 方法将数据写入ileChannel,该方法使用 Buffer 作为参数。

代码展示:

String newData =“要写入文件的新字符串...”+ System.currentTimeMillis();
ByteBuffer buf = ByteBuffer.allocate(48);
buf.clear();
buf.put(newData.getBytes());
buf.flip();
 
推荐文章
粗眉毛的硬币  ·  通过Java SDK调用Paraformer实时语音识别API_大模型服务平台百炼(Model Studio)-阿里云帮助中心
1 月前
卖萌的眼镜  ·  c# checkbox每次打开都会触发事件 - CSDN文库
1 年前
气宇轩昂的领带  ·  如何在React函数组件中等待多个useState钩子的状态更新完成后再执行useEffect?是否可以通过使用async/await或Promise来实现此操作?
1 年前
多情的啄木鸟  ·  JavaScript 页面跳转、页面重定向 | 菜鸟教程
1 年前
聪明的莲藕  ·  RuntimeInformation Class (System.Runtime.InteropServices) | Microsoft Learn
1 年前
跑龙套的圣诞树  ·  Visual Studio Code / vscode 快捷键 整理 - 简书
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号