java的FileChannel使用方法。
来源:互联网 发布:成都真那么好么知乎 编辑:程序博客网 时间:2024/06/01 08:20
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大小的内容。
0 1
- java的FileChannel使用方法。
- Java的NIO之FileChannel
- java filechannel
- FileChannel类的理解和使用(java.nio.channels.FileChannel)
- Java NIO FileChannel
- JAVA NIO之FileChannel
- Java NIO(8-FileChannel)
- Java nio 之 FileChannel
- Java NIO FileChannel
- Java NIO FileChannel
- java nio(二)FileChannel
- Java NIO -- FileChannel
- Java NIO (七) FileChannel
- Java NIO FileChannel
- Java NIO FileChannel
- java nio 之FileChannel
- Java NIO FileChannel
- Java NIO(四)--FileChannel
- Trading——Study Notes
- java Clone 中shallow clone 和 deep clone
- WCF System.ServiceModel.AddressAccessDeniedException
- ini文件的操作
- Valid Parentheses
- java的FileChannel使用方法。
- 由浅入深谈流形
- 求N个实数的最大值和最小值
- 控制器-各种ActionResult【2】
- nyoj-223-小明的烦恼
- 设计模式(九)之 Decorator(油漆工)
- 2014校园招聘之二(3月阿里巴巴实习生笔试题)
- c语言面试知识总结
- 函数