首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java IO 實戰:利用輸入輸出流實現文件複製

     編輯:Java 綜合教學

文件複製標準模板

使用 FileInputStream 讀取、FileOutputStream 寫入,配合位元組緩衝區,可複製任意類型文件(文本、圖片、視頻等)。

完整代碼(修正異常拼寫)

package com.hp.io;

import java.io.*;

public class InputAndOutputFile {
    public static void main(String[] args) {
        File src = new File("f:/終於等到你.txt");
        File dest = new File("f:/終於等到你了.txt");

        try (FileInputStream fis = new FileInputStream(src);
             FileOutputStream fos = new FileOutputStream(dest)) {

            byte[] buffer = new byte[1024];  // 1KB 緩衝區
            int len;
            while ((len = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, len);
            }
            System.out.println("文件複製成功");
        } catch (FileNotFoundException e) {
            System.err.println("源文件不存在: " + e.getMessage());
        } catch (IOException e) {
            System.err.println("讀寫異常: " + e.getMessage());
        }
    }
}

核心邏輯解析

  • fis.read(buffer) 返回實際讀取位元組數,-1 表示結束。
  • fos.write(buffer, 0, len) 僅寫入有效數據,避免殘留舊數據。
  • 緩衝區大小 1024~8192 為宜,過大佔用堆內存,過小增加系統調用開銷。
  • 關閉順序:先關閉輸出流(刷新緩衝區),再關閉輸入流。

進階優化

JDK 7+ 可使用 Files.copy(src.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING) 一行完成,底層利用零拷貝更高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved