用JAVA语言实现:使用文件字节输入/输出流,合并两个指定文件,合并后的数据要求是已排序的。
时间: 2024-02-15 15:01:31 浏览: 80
好的,下面是一个用Java语言实现的合并两个指定文件并排序的例子:
```java
import java.io.*;
public class MergeFiles {
public static void main(String[] args) {
String file1 = "file1.txt";
String file2 = "file2.txt";
String outputFile = "output.txt";
try {
// 读取文件1和文件2
FileInputStream fis1 = new FileInputStream(file1);
FileInputStream fis2 = new FileInputStream(file2);
DataInputStream dis1 = new DataInputStream(fis1);
DataInputStream dis2 = new DataInputStream(fis2);
// 创建输出文件
FileOutputStream fos = new FileOutputStream(outputFile);
DataOutputStream dos = new DataOutputStream(fos);
// 读取文件1和文件2的内容,合并成一个数组
int[] arr = new int[100];
int i = 0;
while (dis1.available() > 0) {
arr[i++] = dis1.readInt();
}
while (dis2.available() > 0) {
arr[i++] = dis2.readInt();
}
// 将数组排序
int n = i;
for (i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 将排序后的数组写入输出文件
for (i = 0; i < n; i++) {
dos.writeInt(arr[i]);
}
// 关闭文件流
fis1.close();
fis2.close();
fos.close();
dis1.close();
dis2.close();
dos.close();
System.out.println("文件合并并排序完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们先定义了文件1、文件2和输出文件的名称,然后使用文件字节输入流和数据输入流读取文件1和文件2的内容,并将它们合并到一个数组中。接着,我们对这个数组进行排序,最后使用文件字节输出流和数据输出流将排序后的数组写入输出文件中。最后,我们关闭文件流,并输出一个提示信息。
注意,这个例子中使用了一个比较简单的排序算法,实际上,在处理大量数据时,我们应该使用更高效的排序算法,比如归并排序或快速排序。
阅读全文