Java——FileInputStream&FileOutputStream字節流實現文件複製

要實現文件的複製,有很多種方法。今天介紹一種最基礎的方法:使用FileInputStream和FileOutputStream實現文件的複製。


思路:

要實現文件的複製,其實質就是對源文件數據進行讀取,再將這些數據寫入目標文件,從而實現文件的複製。


實現:

創建IOUtils類及copyFile方法:

package fileCopy;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class IOUtils {

    public static void copyFile(File src, File dest){
        if(!src.exists()){
            System.out.println("源文件不存在");
            return ;
        }
        try {
            FileInputStream fis = new FileInputStream(src);//創建文件輸入流
            FileOutputStream fos = new FileOutputStream(dest);//創建文件輸出流

            byte[] bytes = new byte[20*1024];//創建一個緩衝區
            int b;//記錄讀數據時的末尾位置
            while((b = fis.read(bytes, 0, bytes.length)) != -1){//如果未讀到文件末尾
                fos.write(bytes, 0, b);//將緩衝區內的數據寫入目標文件
                fos.flush();//刷新緩衝區
            }
            fos.close();
            fis.close();
            System.out.println("複製成功");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

測試:

創建IOUtilsTest類及相應測試方法:

package test;

import java.io.File;

import org.junit.Test;

import fileCopy.IOUtils;

public class IOUtilsTest {

    @Test
    public void testCopyFile(){
        File src = new File("src/src.txt");
        File dest = new File("src/dest.txt");
        IOUtils.copyFile(src, dest);
    }

}

通過測試,可以發現:

  • 若源文件不存在,程序會正常給出提示
  • 若源文件存在,則程序會自動複製該文件內容到目的文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章