利用随机函数产生20个整数,按由小到大的顺序排序后写入文件,然后从文件中读取整数并输出显示,分别用顺序文件和随机文件的读写形式进行编程测试
时间: 2024-02-19 16:58:17 浏览: 69
好的,我们可以使用Java的Random、File、FileWriter、FileReader和BufferedReader类来实现。以下是一个可能的实现:
```java
import java.io.*;
import java.util.*;
public class FileReadWriteTest {
public static void main(String[] args) {
// 创建随机数生成器
Random random = new Random();
// 创建包含20个随机整数的List
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(random.nextInt(100));
}
// 对List进行排序
Collections.sort(list);
try {
// 创建顺序文件并写入数据
FileWriter writer = new FileWriter("ordered.txt");
for (int i = 0; i < list.size(); i++) {
writer.write(list.get(i) + "\n");
}
writer.close();
// 创建随机文件并写入数据
RandomAccessFile randomFile = new RandomAccessFile("random.dat", "rw");
for (int i = 0; i < list.size(); i++) {
randomFile.writeInt(list.get(i));
}
randomFile.close();
// 从顺序文件中读取数据并输出
BufferedReader reader = new BufferedReader(new FileReader("ordered.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(Integer.parseInt(line));
}
reader.close();
// 从随机文件中读取数据并输出
RandomAccessFile randomFile2 = new RandomAccessFile("random.dat", "r");
for (int i = 0; i < list.size(); i++) {
System.out.println(randomFile2.readInt());
}
randomFile2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先使用Random类生成20个随机整数,并将它们存储在一个ArrayList中。然后,我们对ArrayList进行排序,并使用FileWriter和RandomAccessFile类将数据写入两个不同的文件中。最后,我们使用BufferedReader和RandomAccessFile类读取文件中的数据,并将它们输出到控制台上。
请注意,在使用RandomAccessFile类时,我们需要指定文件打开模式为"rw"(读写)或"r"(只读)。此外,我们需要使用类似于文件指针的位置(以字节为单位)来访问文件中的数据,因此我们可以使用readInt()方法读取文件中的整数。
阅读全文