nio通道通信实现的文件复制
2018-09-12 13:01 kill-9 阅读(155) 评论(0) 编辑 收藏 举报1 package edzy.nio; 2 3 import org.junit.Test; 4 5 import java.io.FileInputStream; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.nio.ByteBuffer; 9 import java.nio.MappedByteBuffer; 10 import java.nio.channels.FileChannel; 11 import java.nio.file.Paths; 12 import java.nio.file.StandardOpenOption; 13 14 public class Channel { 15 @Test 16 public void transfer(){ 17 FileChannel in = null; 18 FileChannel out = null; 19 try { 20 in = FileChannel.open(Paths.get("./src/main/java/edzy/nio/s.jpg"),StandardOpenOption.READ); 21 out = FileChannel.open(Paths.get("./src/main/java/edzy/nio/s5.jpg"),StandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE_NEW); 22 //nio通道通信
out.transferFrom(in,0,in.size()); 23 24 } catch (IOException e) { 25 e.printStackTrace(); 26 }finally { 27 if(out != null){ 28 try { 29 out.close(); 30 } catch (IOException e) { 31 e.printStackTrace(); 32 } 33 } 34 35 if(in != null){ 36 try { 37 in.close(); 38 } catch (IOException e) { 39 e.printStackTrace(); 40 } 41 } 42 43 44 } 45 } 46 47 48 }