java:NIO读写文件的示例
来源:互联网 发布:lg d2341软件 编辑:程序博客网 时间:2024/05/22 09:46
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。
NIO方式读数据非常简单,
创建一个缓冲区(ByteBuffer),通过一个FileChannel (从FileInputStream 创建)完成缓冲区的数据读入;
NIO方式写数据也简单,
创建一个缓冲区(ByteBuffer),向其中填充数据;然后通过一个FileChannel (从FileOutputStream 创建)完成缓冲区的数据写入;
注意:读写结束后,要调用FileChannel.close()关闭通道释放资源。
下面是通过NIO进行文件读写的java实例代码。
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class NIOSample{ /** * NIO方式复制文件<br> * 目标文件所在的文件夹如果不存在自动创建文件夹 * @param src 源文件 * @param dst 目标文件 * @throws IOException */ public static final void nioCopyFile(File src,File dst) throws IOException { if(null==src||null==dst) throw new NullPointerException("src or dst is null"); if(!src.exists()||!src.isFile()) throw new IllegalArgumentException(String.format("INVALID FIILE NAME(无效文件名) src=%s",src.getCanonicalPath())); if (dst.exists() &&!dst.isFile()) { throw new IllegalArgumentException(String.format("INVALID FIILE NAME(无效文件名) dst=%s",dst.getCanonicalPath())); } File folder = dst.getParentFile(); if (!folder.exists()) folder.mkdirs(); if(((src.length()+(1<<10)-1)>>10)>(folder.getFreeSpace()>>10)) throw new IOException(String.format("DISK ALMOST FULL(磁盘空间不足) %s",folder.getCanonicalPath())); FileInputStream fin=null; FileOutputStream fout = null; FileChannel fic = null; FileChannel foc = null; try { fin=new FileInputStream(src); fout = new FileOutputStream(dst); // 从FileInputStream创建用于输入的FileChannel fic = fin.getChannel(); // 从FileOutputStream 创建用于输出的FileChannel foc = fout.getChannel(); // 16KB缓冲区 ByteBuffer bb = ByteBuffer.allocate(1024<<4); // 根据 read返回实际读出的字节数 中止循环 while(fic.read(bb)>0){ // 缓冲区翻转用于输出到foc bb.flip(); foc.write(bb); // 清空缓冲区用于下次读取 bb.clear(); } } finally { // 安全释放资源 if(null!=fic) fic.close(); if(null!=foc) foc.close(); if(null!=fin) fin.close(); if(null!=fout) fout.close(); } }}
1 0
- java:NIO读写文件的示例
- NIO读写文件示例
- java nio 的读写操作代码示例
- NIO的读写示例
- JAVA NIO文件映射、通道、流读写文件示例
- Java NIO 读写文件
- java NIO读写文件
- java NIO读写文件
- JAVA NIO 读写文件
- java nio实现读写文件
- JAVA NIO的示例
- Java读写文件文本文件的示例
- Java读写文件文本文件的示例
- 大数据量的文件读写 java nio的完全发挥
- java对比IO和NIO的文件读写性能测试
- 用Java读写文件-示例
- Java nio(文件读写 实例解析)
- Java Nio实现socket读写文件
- 如何用Maven创建web项目(具体步骤)
- 搭建一个简单的node.js服务器
- Unsupported Media Type 415
- 1.2 如何学习单片机
- 【杭电oj】1969 - Pie(二分)
- java:NIO读写文件的示例
- PythonChallenge 6 解答过程
- 动态规划思想
- 我的程序问题方法论
- 1.3 单片机学习的准备工作
- Spring配置文件总结
- FirstStrust2
- iOS 关于MD5容易遗漏的两个库
- Hadoop Hive基础sql语法