java filechannel 写文件_用FileChannel读写文件

package main;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.nio.charset.Charset;

/**

* Page 502

* @author 阿飞

* 用FileChannel读写文件

*

*/

public class FileChannelTester {

public static void main(String args[])throws IOException{

final int BSIZE=1024;

//向文件中写数据

FileChannel fc = new FileOutputStream("D:\\test.txt").getChannel();

fc.write(ByteBuffer.wrap("你好,".getBytes()));

fc.close();

//向文件末尾添加数据

//先按照“rw”访问模式打开D:\\test.txt文件,如果这个文件还不存在,RandomAccessFile的构造方法会创建该文件

fc = new RandomAccessFile("D:\\test.txt","rw").getChannel(); //RandomAccessFile不支持只写模式,因为把参数设为“w”是非法的

fc.position(fc.size()); //定位到文件末尾

fc.write(ByteBuffer.wrap("朋友!".getBytes()));

fc.close();

//读数据

fc = new FileInputStream("D:\\test.txt").getChannel(); //或者用下面的方法

// fc = new RandomAccessFile("D:\\test.txt","r").getChannel();

ByteBuffer buff = ByteBuffer.allocate(BSIZE);

fc.read(buff);

buff.flip();

Charset cs = Charset.defaultCharset();

System.out.println(cs.decode(buff));

fc.close();

}

}


版权声明:本文为weixin_39927378原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。