1.编写一个程序,分别使用字节流和字符流拷贝一个文本文件(注意 必须是.txt为后缀的文本文件),要求如下: (1)使用FileInputStream、FileOutputStream和FileReader、FileWriter 分别进行复制; (2)使用字节流拷贝时,定义一个1024字节的字节数组作为缓冲区, 使用字符流拷贝时,使用BufferReader包装流作为缓冲。
时间: 2024-02-12 18:07:09 浏览: 78
以下是使用字节流拷贝的代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileByte {
public static void main(String[] args) {
String sourceFile = "source.txt";
String targetFile = "target.txt";
// 使用FileInputStream和FileOutputStream复制文本文件
try (FileInputStream fis = new FileInputStream(new File(sourceFile));
FileOutputStream fos = new FileOutputStream(new File(targetFile))) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
System.out.println("使用字节流拷贝文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以下是使用字符流拷贝的代码:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFileChar {
public static void main(String[] args) {
String sourceFile = "source.txt";
String targetFile = "target.txt";
// 使用FileReader和FileWriter复制文本文件
try (BufferedReader br = new BufferedReader(new FileReader(new File(sourceFile)));
FileWriter fw = new FileWriter(new File(targetFile))) {
char[] buffer = new char[1024];
int len;
while ((len = br.read(buffer)) != -1) {
fw.write(buffer, 0, len);
}
System.out.println("使用字符流拷贝文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,以上代码中的文件名和路径需要根据实际情况进行修改。
阅读全文