码迷,mamicode.com
首页 > 其他好文 > 详细

FileChannel的用法

时间:2014-10-15 20:27:21      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   java   文件   数据   2014   

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的用法

标签:blog   http   io   os   ar   java   文件   数据   2014   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!