编写一个程序,分别使用字节流和字符流拷贝一个文本文件。要求如下: (1)使用FileInputStream、FileOutputStreaem和FileReader、FileWriter分别进行拷贝。 (2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区。
时间: 2024-10-19 10:13:58 浏览: 33
Java字符流和字节流对文件操作的区别
当你需要从一个文本文件复制内容到另一个文件时,可以使用Java的IO流API,包括字节流(如`FileInputStream`, `FileOutputStream`)和字符流(如`FileReader`, `FileWriter`)。下面是一个简单的示例,演示如何按照要求分别使用这两种流进行文件拷贝:
1. 使用字节流(Byte Streams)拷贝:
```java
import java.io.*;
public class ByteCopyExample {
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream("input.txt");
FileOutputStream out = new FileOutputStream("output.txt");
// 创建一个缓冲区
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
in.close();
out.close();
System.out.println("Byte copy completed.");
}
}
```
2. 使用字符流(Character Streams)拷贝:
```java
import java.io.*;
public class CharCopyExample {
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("input.txt");
FileWriter writer = new FileWriter("output.txt");
char[] chars = new char[1024];
int readChars;
while ((readChars = reader.read(chars)) != -1) {
writer.write(chars, 0, readChars);
}
reader.close();
writer.close();
System.out.println("Character copy completed.");
}
}
```
注意,字符流拷贝适用于文本文件,因为它们会处理文本中的换行符和其他特殊字符。如果文件包含二进制数据,最好还是使用字节流。
阅读全文