Java中的IO流分为字节流和字符流,其中字节流操作二进制文件,而字符流则操作文本文件。下面我们将探讨如何使用Java中的字节流和字符流进行文件拷贝操作。
使用字节流拷贝文件:
public static void copyFileByByteStream(File source, File destination) throws IOException { try (InputStream inputStream = new FileInputStream(source); OutputStream outputStream = new FileOutputStream(destination); ) { byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) >0) { outputStream.write(buffer, 0, length); } } }
使用字符流拷贝文件:
public static void copyFileByCharacterStream(File source, File destination) throws IOException { try (Reader reader = new FileReader(source); Writer writer = new FileWriter(destination); ) { char[] buffer = new char[1024]; int length; while ((length = reader.read(buffer)) >0) { writer.write(buffer, 0, length); } } }
字节流和字符流的拷贝过程本质上是一样的,而唯一的区别就是使用的流类型不同,如果你需要拷贝二进制文件,那么字节流是最好的选择,如果需要操作文本文件,那么字符流则是更好的选择。