NIO与IO流

 1  public static void main(String[] args) throws IOException {
 2         //创建RandomAccessFile源文件
 3         RandomAccessFile rabsrc = new RandomAccessFile("mm.png","rw");
 4         //获取源文件的Channel
 5         FileChannel srcChannel = rabsrc.getChannel();
 6         //目标文件
 7         RandomAccessFile radTarget = new RandomAccessFile("D:\\download\\java\\mm.png","rw");
 8         //生成目标文件的Channel通道
 9         FileChannel fc = radTarget.getChannel();
10         //调用transferTo
11         assert false;
12         long transferTo = srcChannel.transferTo(0,srcChannel.size(),fc);
13         if(transferTo >0){
14             System.out.println("复制成功");
15         }
16         rabsrc.close();
17         srcChannel.close();
18         radTarget.close();
19         fc.close();
20     }
区别 Stream Channel
支持异步 不支持 支持
是否可双向传输数据                                                不能,只能单向                                                               可以,既可以从通道读取数据,也可以向通道写入数据
是否结合Buffer使用                                      不能 必须结合Buffer使用
性能 较低

较高

 

字符流与字节流的区别?

1、字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。

2、字节流默认不使用缓冲区;字符流使用缓冲区。

3、字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

简要说明什么是NIO(New I/O)

   标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入通道也类似。

 

posted @ 2022-04-17 00:16  panther125  阅读(49)  评论(0)    收藏  举报