1. 程式人生 > >Java實現檔案複製的兩種方式

Java實現檔案複製的兩種方式

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public final class MyUtil {



    public static void fileCopy(String source, String target) throws
IOException { try (InputStream in = new FileInputStream(source)) { try (OutputStream out = new FileOutputStream(target)) { byte[] buffer = new byte[4096]; int bytesToRead; while((bytesToRead = in.read(buffer)) != -1) { out.write(buffer, 0
, bytesToRead); } } } } public static void fileCopyNIO(String source, String target) throws IOException { try (FileInputStream in = new FileInputStream(source)) { try (FileOutputStream out = new FileOutputStream(target)) { FileChannel inChannel = in.getChannel(); FileChannel outChannel = out.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(4096
); while(inChannel.read(buffer) != -1) { buffer.flip(); outChannel.write(buffer); buffer.clear(); } } } } public static void main(String[] args) { String source = "C:/MyCode/Java/LeetCode/filetest/source.txt"; String target = "C:/MyCode/Java/LeetCode/filetest/target.txt"; MyUtil test = new MyUtil(); try { test.fileCopy(source, target); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }