首页 > 其他 > 详细

FileChannel的用法

时间:2014-10-15 19:35:12      阅读:290      评论:0      收藏:0      [点我收藏+]
package com.itbuluoge.nio;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class GetChannel {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {

		/*通过通道写入文件*/
		FileChannel fc=new FileOutputStream("data.txt").getChannel();
		fc.write(ByteBuffer.wrap("123456789".getBytes()));
		fc.close();
		
	
		/*读出文件*/
		fc=new FileInputStream("data.txt").getChannel();
		ByteBuffer buff=ByteBuffer.allocate(9);
		fc.read(buff);
		buff.flip();
		while(buff.hasRemaining())
		{
			System.out.print((char)buff.get());
		}
	}

}



输出

bubuko.com,布布扣


这里有几个注意的点

第一,FileChannel类似与FileReader一样。

第二,FileChannel.read(ByteBuffer),将会读入一个ByteBuffer大小的数据块。

第三,在读取ByteBuffer的时候,需要设置ByteBuffer为读状态,也就是调用buff.flip();否则会无法读出数据。

FileChannel的用法

原文:http://blog.csdn.net/itbuluoge/article/details/40115669

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!