Java 文件复制:字符流实现 (一次读取一个字符和字符数组)
Java 文件复制:字符流实现 (一次读取一个字符和字符数组)
本文将演示如何使用 Java 的文件字符输入流和输出流将文件 D:\word\a.txt 复制到 E:\word\a.txt。 我们将使用两种方法来实现:
- 一次读取一个字符的方式:
import java.io.*;
public class FileCopyOneChar {
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);
}
reader.close();
writer.close();
System.out.println("文件复制成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 一次读取一个字符数组的方式:
import java.io.*;
public class FileCopyCharArray {
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);
}
reader.close();
writer.close();
System.out.println("文件复制成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
解释:
- FileReader 和 FileWriter 用于创建文件输入流和输出流。
- read() 方法用于从输入流中读取一个字符,返回字符的 ASCII 码,如果遇到文件末尾则返回 -1。
- write() 方法用于将字符写入输出流。
- read(char[] buffer) 方法用于从输入流中读取一个字符数组,返回读取的字符数,如果遇到文件末尾则返回 -1。
- write(char[] buffer, int start, int len) 方法用于将字符数组中的部分内容写入输出流,
start表示开始位置,len表示写入的字符数。
总结:
通过使用 Java 的文件字符流,我们可以方便地实现文件复制操作。 两种方式各有优劣,选择哪种方式取决于具体情况。 一般情况下,一次读取一个字符数组的方式效率更高。
原文地址: https://www.cveoy.top/t/topic/ok5S 著作权归作者所有。请勿转载和采集!