淘先锋技术网

首页 1 2 3 4 5 6 7

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);
}
}
}

字节流和字符流的拷贝过程本质上是一样的,而唯一的区别就是使用的流类型不同,如果你需要拷贝二进制文件,那么字节流是最好的选择,如果需要操作文本文件,那么字符流则是更好的选择。