Java 文件复制:字符流读取和写入示例
Java 文件复制:字符流读取和写入示例
本文介绍了使用 Java 的字符流 (FileReader 和 FileWriter) 复制文件的两种方法,分别为:一次读取一个字符和一次读取一个字符数组。
一次读取一个字符的方式:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopyDemo {
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
try {
reader = new FileReader('D:\word\a.txt');
writer = new FileWriter('E:\word\a.txt');
int c;
while ((c = reader.read()) != -1) {
writer.write(c);
}
System.out.println('文件复制成功!');
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
一次读取一个字符数组的方式:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopyDemo {
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
try {
reader = new FileReader('D:\word\a.txt');
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();
} finally {
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
代码解释:
- FileReader: 用于读取字符输入流,从文件读取数据。
- FileWriter: 用于写入字符输出流,将数据写入文件。
- read() 方法: 一次读取一个字符。
- read(char[] buffer) 方法: 一次读取多个字符到字符数组。
- write() 方法: 写入一个字符。
- write(char[] buffer, int offset, int length) 方法: 将字符数组中的部分数据写入文件。
注意:
- 确保目标文件路径存在,否则复制操作会失败。
- 使用 try-catch-finally 语句处理异常,确保资源及时关闭。
- 可以根据实际需求调整字符数组大小 (buffer) 来优化性能。
通过以上两种方法,您可以根据实际需求选择合适的字符流方式进行文件复制操作。
原文地址: https://www.cveoy.top/t/topic/ok57 著作权归作者所有。请勿转载和采集!