使用java在d盘创建xxx.jar(200M左右的jar文件),并将d盘下的xxx.jar文件复制到e盘下,要求利用输入输出流完成文件的复制和利用缓冲输入输出流完成文件的复制,且对比输入输出流完成文件的复制和缓冲输入输出流完成文件的复制速度。
时间: 2024-03-06 18:49:37 浏览: 17
好的,我知道了你的问题。首先,你可以使用以下代码在 D 盘创建一个 200MB 左右的 JAR 文件:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
public class CreateJarFile {
public static void main(String[] args) throws IOException {
Random random = new Random();
byte[] buffer = new byte[1024];
FileOutputStream fos = new FileOutputStream("D:\\xxx.jar");
for (int i = 0; i < 200 * 1024; i++) {
random.nextBytes(buffer);
fos.write(buffer);
}
fos.close();
}
}
```
接下来,你可以使用以下代码利用输入输出流完成文件的复制:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("D:\\xxx.jar");
FileOutputStream fos = new FileOutputStream("E:\\xxx.copy1.jar");
byte[] buffer = new byte[1024];
int len;
long start = System.currentTimeMillis();
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
long end = System.currentTimeMillis();
System.out.println("使用输入输出流完成文件复制,耗时:" + (end - start) + "毫秒");
fis.close();
fos.close();
}
}
```
然后,你可以使用以下代码利用缓冲输入输出流完成文件的复制:
```java
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileWithBuffer {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("D:\\xxx.jar");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("E:\\xxx.copy2.jar");
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] buffer = new byte[1024];
int len;
long start = System.currentTimeMillis();
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
long end = System.currentTimeMillis();
System.out.println("使用缓冲输入输出流完成文件复制,耗时:" + (end - start) + "毫秒");
bis.close();
bos.close();
}
}
```
最后,你可以对比两种方式的速度。一般来说,使用缓冲输入输出流可以提高文件复制的速度。