Java函数:如何编写一个完整的文件读写函数?
发布时间:2023-07-01 16:49:52
在Java中,我们可以使用字节流和字符流两种方式来进行文件读写操作。下面将分别介绍如何使用这两种方式编写一个完整的文件读写函数。
一、字节流方式
使用字节流方式读写文件,主要涉及到FileInputStream和FileOutputStream两个类。以下是一个完整的文件读写函数:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReadWriteExample {
public static void main(String[] args) {
String sourceFile = "input.txt";
String destinationFile = "output.txt";
copyFile(sourceFile, destinationFile);
}
public static void copyFile(String sourceFile, String destinationFile) {
File file = new File(sourceFile);
try (FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(destinationFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
System.out.println("File copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在函数copyFile中,首先创建一个File对象,然后使用FileInputStream将源文件读入字节流,使用FileOutputStream将字节流写入目标文件。通过使用一个缓冲区(字节数组buffer)来提高读写的效率,通过设置length来记录每次读取的字节数量,然后使用fos.write(buffer, 0, length)将字节写入目标文件。最后,在IOException捕获块中处理异常情况。
二、字符流方式
使用字符流方式读写文件,主要涉及到FileReader和FileWriter两个类。以下是一个完整的文件读写函数:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReadWriteExample {
public static void main(String[] args) {
String sourceFile = "input.txt";
String destinationFile = "output.txt";
copyFile(sourceFile, destinationFile);
}
public static void copyFile(String sourceFile, String destinationFile) {
try (BufferedReader br = new BufferedReader(new FileReader(sourceFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(destinationFile))) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
System.out.println("File copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在函数copyFile中,首先创建一个BufferedReader对象,通过FileReader将源文件读入字符流。然后,创建一个BufferedWriter对象,通过FileWriter将字符流写入目标文件。通过循环读取每行文本数据,使用bw.write(line)将每行写入目标文件,并使用bw.newLine()添加换行符。最后,在IOException捕获块中处理异常情况。
以上就是使用Java字节流和字符流两种方式编写一个完整的文件读写函数的教程,分别介绍了如何使用这两种方式读取和写入文件,希望能对你有所帮助。
