java的FileChannel使用方法。
2014-09-23 22:06
302 查看
package com.test.nio; import java.io.FileNotFoundException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class TestFile { /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) throws Exception { RandomAccessFile aFile=new RandomAccessFile("H:/test.txt","rw"); FileChannel inChannel=aFile.getChannel(); /*分配buffer */ ByteBuffer buf=ByteBuffer.allocate(2); /*读入到buffer*/ int bytesRead=inChannel.read(buf); while(bytesRead!=-1) { /*设置读*/ buf.flip(); /*开始读取*/ while(buf.hasRemaining()) { System.out.print((char)buf.get()); } buf.clear(); bytesRead=inChannel.read(buf); } aFile.close(); } }
FileChannel我们可以理解为一个file的流,然后我们利用ByteBuffer绑定到这个文件流中,最后把文件流全部读取出来。
输出结果
ByteBuffer buf=ByteBuffer.allocate(2);这句话是分配一个buffer,大小为两个字节。
int bytesRead=inChannel.read(buf);这句话是从文件流中读取一个buf内容,返回读取的大小,如果是读取到文件尾部的时候,返回的是-1。
/*设置读*/
buf.flip();
/*开始读取*/
while(buf.hasRemaining())
{
System.out.print((char)buf.get());
}
buf.clear();
这段话是设置buf为读模式,然后循环输出buf里面的内容,最后清空整个buf。
bytesRead=inChannel.read(buf);这句话继续读取文件流buf大小的内容。
相关文章推荐
- java-io File方法的使用
- [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法
- java file文件类操作使用方法大全
- FileChannel类的理解和使用(java.nio.channels.FileChannel)
- java 使用相对路径读取文件File(类构造方法)
- Java_java中FileWriter和FileReader类(基本使用方法)
- 明日工作中需要用到的两个方法 java中File的基本使用
- Java中IO流的使用方法之File
- 使用java.io.File的renameTo方法移动文件失败的问题
- Java编程___File各类方法使用(实现拷贝特定文件至特定目录下)
- java file文件类操作使用方法大全
- java file文件类操作使用方法大全
- java文件上传ajaxFileUpload.js使用方法
- 一个使用java File类分割文件的方法
- java.nio.channels.FileChannel 使用笔记
- Java io中的File类里面的方法总览和使用示例
- JAVA-IO流中FileReader和FileWriter方法的使用
- java file文件类操作使用方法大全
- java file文件类操作使用方法大全
- Java File 类的使用方法