创建输入文件对象和输出文件对象:我们首先需要创建一个
File
对象来表示输入文件和输出文件。对于输入文件,我们将其命名为filein.txt
;对于输出文件,我们将其命名为fileout.txt
。读取文件内容:我们使用
FileReader
来读取输入文件的内容。我们需要先创建一个FileReader
对象,并传入输入文件对象作为参数。然后,我们可以调用read()
方法来读取文件的内容,并将其保存在一个字符数组中。写入文件内容:我们使用
FileWriter
来写入文件的内容。同样地,我们需要创建一个FileWriter
对象,并传入输出文件对象作为参数。然后,我们可以调用write()
方法来将读取到的文件内容写入到输出文件中。关闭资源:完成文件读取和写入操作后,我们应该关闭打开的文件资源,以释放系统资源。我们需要分别关闭
FileReader
和FileWriter
对象。
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
// 创建输入文件和输出文件对象
File inputFile = new File("filein.txt");
File outputFile = new File("fileout.txt");
// 读取文件内容
char[] content = readFile(inputFile);
// 写入文件内容
writeFile(outputFile, content);
}
// 读取文件内容的方法
private static char[] readFile(File inputFile) {
int length = (int) inputFile.length();
char[] content = new char[length];
FileReader fileReader = null;
try {
fileReader = new FileReader(inputFile);
fileReader.read(content);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
closeReader(fileReader);
}
return content;
}
// 写入文件内容的方法
private static void writeFile(File outputFile, char[] content) {
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(outputFile);
fileWriter.write(content);
fileWriter.flush();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
closeWriter(fileWriter);
}
}
// 关闭Reader对象的方法
private static void closeReader(Reader reader) {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
// 关闭Writer对象的方法
private static void closeWriter(Writer writer) {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}