用Java编写文本文件复制程序,即把源文件复制到目标文件,运行时用参数方式输入源文件名和目标文件名,设入口主类为FileCopy,则运行方式为: java FileCopy 源文件名 目标文件名。主要步骤和具体流程
时间: 2024-03-07 08:50:45 浏览: 49
以下是Java编写文本文件复制程序的主要步骤和具体流程:
1. 通过命令行参数获取源文件名和目标文件名:
```java
String sourceFilePath = args[0];
String destinationFilePath = args[1];
```
2. 创建源文件和目标文件的文件对象:
```java
File sourceFile = new File(sourceFilePath);
File destinationFile = new File(destinationFilePath);
```
3. 创建输入流和输出流:
```java
FileInputStream inputStream = new FileInputStream(sourceFile);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
```
4. 创建缓冲区:
```java
byte[] buffer = new byte[1024];
int bytesRead;
```
5. 读取源文件的内容并写入到目标文件:
```java
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
```
6. 关闭输入流和输出流:
```java
inputStream.close();
outputStream.close();
```
完整程序如下:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
if (args.length != 2) {
System.err.println("Usage: java FileCopy sourceFile destinationFile");
System.exit(1);
}
String sourceFilePath = args[0];
String destinationFilePath = args[1];
File sourceFile = new File(sourceFilePath);
File destinationFile = new File(destinationFilePath);
try (
FileInputStream inputStream = new FileInputStream(sourceFile);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
注意:上述程序没有处理读写文件时可能出现的异常,实际应用中需要进行异常处理。