本章主要内容:
- 文件的基础知识
- Netty文件传输开发
5.1 文件基础知识
Java NIO中的FileChannel是一个连接到文件的通道,可通过这个文件通道对文件进行读写。
JDK1.7之前NIO1.0的FileChannel是同步阻塞的,JDK1.7版本对NIO类库进行了升级,升级后的NIO2.0提供了异步文件操作通AsynchronousFileChannel,它支持异步非阻塞文件操作。
在使用FileChannel之前必须先打开它,FileChannel无法直接被开发,必须通过InputStream、OutputStream或RandomAccessFile来获取一个FileChannel实例:
package com.bj58.wuxian.file;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileChannelDemo {
public static void main(String[] args) {
try {
RandomAccessFile accessFile = new RandomAccessFile(
"D:\\data.txt", "rw");
FileChannel fileChannel=accessFile.getChannel();
//写入
ByteBuffer src=ByteBuffer.wrap("test".getBytes());
fileChannel.position(fileChannel.size());
fileChannel.write(src);
//读取
ByteBuffer dst=ByteBuffer.allocate(1024);
fileChannel.read(dst);
System.out.println(new String(dst.array()));
fileChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
*****************未完待续*******************
网友评论