1. 编写一个程序,分别使用字节流和字符流拷贝一个文本文件。要求如下: (1)使用FileInputStream、FileOutputStreaem和FileReader、FileWriter分别进行拷贝。 (2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区;使用字符流拷贝
时间: 2024-02-20 16:59:32 浏览: 68
时,定义一个char数组作为缓冲区。 (3)在拷贝完成后,输出拷贝所花费的时间。以下是示例代码:
使用字节流拷贝:
```java
import java.io.*;
public class ByteStreamCopy {
public static void main(String[] args) {
long start = System.currentTimeMillis();
try (FileInputStream fis = new FileInputStream("source.txt");
FileOutputStream fos = new FileOutputStream("target.txt")) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println("Using byte stream copy time: " + (end - start) + "ms");
}
}
```
使用字符流拷贝:
```java
import java.io.*;
public class CharStreamCopy {
public static void main(String[] args) {
long start = System.currentTimeMillis();
try (FileReader fr = new FileReader("source.txt");
FileWriter fw = new FileWriter("target.txt")) {
char[] buffer = new char[1024];
int len;
while ((len = fr.read(buffer)) != -1) {
fw.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println("Using char stream copy time: " + (end - start) + "ms");
}
}
```
以上代码中,我们分别使用了字节流和字符流来拷贝文本文件,并使用缓冲区来提高效率。拷贝完成后,输出了拷贝所花费的时间。
阅读全文