Java 文件复制:字符流读取与写入
Java 文件复制:字符流读取与写入
本文将介绍如何使用 Java 文件字符输入流和输出流复制文件,并提供两种方法:
- 一次读取一个字符
- 一次读取一个字符数组
一次读取一个字符的方式
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
try (FileReader reader = new FileReader('D:\word\a.txt');
FileWriter writer = new FileWriter('E:\word\a.txt')) {
int ch;
while ((ch = reader.read()) != -1) {
writer.write(ch);
}
System.out.println('复制完成!');
} catch (IOException e) {
e.printStackTrace();
}
}
}
一次读取一个字符数组的方式
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
try (FileReader reader = new FileReader('D:\word\a.txt');
FileWriter writer = new FileWriter('E:\word\a.txt')) {
char[] buffer = new char[1024];
int len;
while ((len = reader.read(buffer)) != -1) {
writer.write(buffer, 0, len);
}
System.out.println('复制完成!');
} catch (IOException e) {
e.printStackTrace();
}
}
}
解释:
- FileReader 类用于读取字符数据,FileWriter 类用于写入字符数据。
- 一次读取一个字符的方法使用
read()方法,每次读取一个字符,并将其写入到目标文件。 - 一次读取一个字符数组的方法使用
read(char[] buffer)方法,每次读取指定长度的字符数组,并将其写入到目标文件。 - 使用
try-with-resources语句确保在使用完文件流之后自动关闭文件。
注意:
- 文件路径需要根据实际情况进行修改。
- 一次读取一个字符数组的方式通常比一次读取一个字符的方式效率更高,因为它减少了文件读写的次数。
- 使用字符流复制文件时,需要注意字符编码问题,确保源文件和目标文件的字符编码一致。
原文地址: https://www.cveoy.top/t/topic/ok5l 著作权归作者所有。请勿转载和采集!