用FileInputStream和FileOutputStream 来实现一个文件移动程序,并测试移动1G文件所需要的时间。
时间: 2024-05-14 22:18:09 浏览: 58
以下是Java代码实现文件移动,其中使用了FileInputStreamFileOutputStream:
```java
import java.io.*;
public class FileMover {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
String sourceFilePath = "File.txt";
String target = "targetFile.txt";
File sourceFile = new File(sourceFilePath);
File targetFile = new File(targetFilePath);
try {
FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
fis.close();
fos.close();
System.out.println("文件移动成功!");
} catch (IOException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("文件移动所需时间:" + (endTime - startTime) + " ms");
}
}
```
这个程序将源文件(sourceFile.txt)移动到目标文件(targetFile.txt)中,并输出移动所需的时间。在测试1GB的文件移动所需的时间时,需要创建一个大小为1GB的文件,可以使用以下命令:
```bash
dd if=/dev/zero of=1GBfile bs=1M count=1024
```
这将在当前目录下创建一个名为1GBfile的1GB文件。
然后,将源文件名(sourceFile.txt)改为1GBfile,运行上面的Java程序即可测试文件移动所需的时间。
需要注意的一点是,在移动大文件时,文件I/O操作可能会比较耗时,因此可能需要相应地调整Java虚拟机的内存限制以提高性能。
阅读全文