java 编写一个程序,从命令行上接收两个文件名,比较两个文件的长度及内容。
时间: 2024-04-30 07:25:15 浏览: 88
以下是一个简单的Java程序,用于比较两个文件的长度和内容:
```java
import java.io.*;
public class CompareFiles {
public static void main(String[] args) {
// 检查参数个数
if (args.length != 2) {
System.out.println("用法:java CompareFiles file1 file2");
System.exit(1);
}
// 打开文件1
File file1 = new File(args[0]);
if (!file1.exists()) {
System.out.println("文件 " + args[0] + " 不存在");
System.exit(1);
}
// 打开文件2
File file2 = new File(args[1]);
if (!file2.exists()) {
System.out.println("文件 " + args[1] + " 不存在");
System.exit(1);
}
// 比较文件长度
if (file1.length() != file2.length()) {
System.out.println("文件长度不同");
System.exit(0);
}
// 比较文件内容
try (BufferedInputStream in1 = new BufferedInputStream(new FileInputStream(file1));
BufferedInputStream in2 = new BufferedInputStream(new FileInputStream(file2))) {
int b1, b2;
while ((b1 = in1.read()) != -1) {
b2 = in2.read();
if (b1 != b2) {
System.out.println("文件内容不同");
System.exit(0);
}
}
System.out.println("文件内容相同");
}
catch (IOException e) {
System.out.println(e);
}
}
}
```
该程序首先检查是否提供了两个文件名作为命令行参数,然后打开这两个文件并比较它们的长度。如果长度不同,则输出“文件长度不同”并退出程序。如果长度相同,则逐个字节地比较文件内容。如果任何一个字节不同,则输出“文件内容不同”并退出程序。如果所有字节都相同,则输出“文件内容相同”。
阅读全文