一、概述在 Java 开发中文件复制是一个非常常见的需求。根据文件类型不同可以选择不同的实现方式文本文件复制→ 推荐使用字符缓冲流任意文件图片、视频、压缩包等→ 使用字节缓冲流二、文本文件复制字符缓冲流适用场景.txt、.java、.html、.md等文本文件。优势支持字符编码按行读写效率高代码简洁完整代码示例javaimport java.io.*; public class TextFileCopy { public static void main(String[] args) { // 源文件和目标文件路径 String sourceFile source.txt; String destFile dest.txt; try (BufferedReader reader new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer new BufferedWriter(new FileWriter(destFile))) { String line; while ((line reader.readLine()) ! null) { writer.write(line); writer.newLine(); // 换行 } System.out.println(文本文件复制成功); } catch (IOException e) { e.printStackTrace(); } } }三、任意文件复制字节缓冲流适用场景图片、音频、视频、exe、jar、pdf 等二进制文件。优势万能复制不关心文件内容BufferedInputStreamBufferedOutputStream提供缓冲区提高效率完整代码示例javaimport java.io.*; public class AnyFileCopy { public static void main(String[] args) { String sourceFile example.jpg; String destFile copy_example.jpg; try (BufferedInputStream bis new BufferedInputStream(new FileInputStream(sourceFile)); BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(destFile))) { byte[] buffer new byte[8192]; // 8KB 缓冲区 int length; while ((length bis.read(buffer)) ! -1) { bos.write(buffer, 0, length); } System.out.println(任意文件复制成功); } catch (IOException e) { e.printStackTrace(); } } }四、对比总结特点字符缓冲流字节缓冲流适用文件类型仅文本文件任意文件读取单位字符char字节byte是否支持编码是否需要自行处理最常用场景配置文件、日志、代码文件图片、视频、压缩包效率行读/写适合文本字节块读写万能高效
文本文件 vs 任意文件
一、概述在 Java 开发中文件复制是一个非常常见的需求。根据文件类型不同可以选择不同的实现方式文本文件复制→ 推荐使用字符缓冲流任意文件图片、视频、压缩包等→ 使用字节缓冲流二、文本文件复制字符缓冲流适用场景.txt、.java、.html、.md等文本文件。优势支持字符编码按行读写效率高代码简洁完整代码示例javaimport java.io.*; public class TextFileCopy { public static void main(String[] args) { // 源文件和目标文件路径 String sourceFile source.txt; String destFile dest.txt; try (BufferedReader reader new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer new BufferedWriter(new FileWriter(destFile))) { String line; while ((line reader.readLine()) ! null) { writer.write(line); writer.newLine(); // 换行 } System.out.println(文本文件复制成功); } catch (IOException e) { e.printStackTrace(); } } }三、任意文件复制字节缓冲流适用场景图片、音频、视频、exe、jar、pdf 等二进制文件。优势万能复制不关心文件内容BufferedInputStreamBufferedOutputStream提供缓冲区提高效率完整代码示例javaimport java.io.*; public class AnyFileCopy { public static void main(String[] args) { String sourceFile example.jpg; String destFile copy_example.jpg; try (BufferedInputStream bis new BufferedInputStream(new FileInputStream(sourceFile)); BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(destFile))) { byte[] buffer new byte[8192]; // 8KB 缓冲区 int length; while ((length bis.read(buffer)) ! -1) { bos.write(buffer, 0, length); } System.out.println(任意文件复制成功); } catch (IOException e) { e.printStackTrace(); } } }四、对比总结特点字符缓冲流字节缓冲流适用文件类型仅文本文件任意文件读取单位字符char字节byte是否支持编码是否需要自行处理最常用场景配置文件、日志、代码文件图片、视频、压缩包效率行读/写适合文本字节块读写万能高效