javaNio Filechannel
2018-03-30 10:38
417 查看
例子import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.concurrent.Future;
public class Pathss {
public static void main(String[] args) throws IOException {
RandomAccessFile input=new RandomAccessFile("E://output.txt","rw");//一定要用RandomAccessFile 不然有些通道的功能无法实现
FileChannel chan=input.getChannel();//获取通道
ByteBuffer buff=ByteBuffer.allocate((int)chan.size());//设置ByteBuffer的capacity(内存最大值)为文件的字节长度
buff.clear();//清空缓存,切换成读模式(capacity和limit值一样)
chan.read(buff);//读取 position值从0开始慢慢递增
byte[] bytes=new byte[buff.limit()];//长度为position的值一样
buff.flip();//切换成写模式 position变为0 capacity不变 limit变为读模式时position最后的位置
buff.get(bytes);//写入byte数组中 ,position慢慢递增
System.out.println(new String(bytes));
input.close();
}
}具体的limit position capacity含义请到这里看。http://ifeve.com/buffers/
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.concurrent.Future;
public class Pathss {
public static void main(String[] args) throws IOException {
RandomAccessFile input=new RandomAccessFile("E://output.txt","rw");//一定要用RandomAccessFile 不然有些通道的功能无法实现
FileChannel chan=input.getChannel();//获取通道
ByteBuffer buff=ByteBuffer.allocate((int)chan.size());//设置ByteBuffer的capacity(内存最大值)为文件的字节长度
buff.clear();//清空缓存,切换成读模式(capacity和limit值一样)
chan.read(buff);//读取 position值从0开始慢慢递增
byte[] bytes=new byte[buff.limit()];//长度为position的值一样
buff.flip();//切换成写模式 position变为0 capacity不变 limit变为读模式时position最后的位置
buff.get(bytes);//写入byte数组中 ,position慢慢递增
System.out.println(new String(bytes));
input.close();
}
}具体的limit position capacity含义请到这里看。http://ifeve.com/buffers/
相关文章推荐
- Java - NIO之Channel(FileChannel)
- JavaNio——FileChannel
- java nio 之FileChannel
- Java NIO 学习(三)--FileChannel
- Java NIO FileChannel
- Java Nio 八、Java NIO FileChannel
- Java NIO AsynchronousFileChannel
- Java的NIO之FileChannel
- Java NIO FileChannel
- Java NIO FileChannel
- java的nio之:java的nio系列教程之FileChannel
- Java - NIO之Channel(FileChannel)
- java.nio.channels.FileChannel文件通道源码解析
- 【原创】java NIO FileChannel 学习笔记 FileChannel实现分析 即FileChannelImpl分析
- 【JAVA】【NIO】8、Java NIO FileChannel
- 【原创】java NIO FileChannel 学习笔记 FileChannel 简介
- Java NIO AsynchronousFileChannel
- java.nio.channels.FileChannel 使用笔记
- JAVA NIO之FileChannel
- FileChannel类的理解和使用(java.nio.channels.FileChannel)