产生15个20~9999之间的随机整数,然后利用bufferedwriter类将其写入文件data.txt中,之后再读取该文件中的数据并将它们按升序排序,然后在显示器输出。
时间: 2023-05-31 16:18:57 浏览: 166
### 回答1:
好的,以下是用中文回复:
1. 产生15个20~9999之间的随机整数
可以使用Java中的Random类来生成随机数,代码如下:
```
Random random = new Random();
for (int i = 0; i < 15; i++) {
int num = random.nextInt(9979) + 20; // 生成20~9999之间的随机整数
// 将num写入文件data.txt中
}
```
2. 利用BufferedWriter类将其写入文件data.txt中
可以使用Java中的BufferedWriter类来写入文件,代码如下:
```
BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"));
for (int i = 0; i < 15; i++) {
int num = random.nextInt(9979) + 20; // 生成20~9999之间的随机整数
writer.write(num + "\n"); // 写入文件
}
writer.close(); // 关闭文件流
```
3. 读取该文件中的数据并将它们按升序排序
可以使用Java中的Scanner类来读取文件中的数据,然后使用Arrays类的sort方法进行排序,代码如下:
```
Scanner scanner = new Scanner(new File("data.txt"));
int[] nums = new int[15];
int i = 0;
while (scanner.hasNextInt()) {
nums[i++] = scanner.nextInt(); // 读取文件中的数据
}
Arrays.sort(nums); // 对数据进行排序
```
4. 在显示器输出排序后的数据
可以使用Java中的System.out.println方法来输出数据,代码如下:
```
for (int num : nums) {
System.out.println(num); // 输出排序后的数据
}
```
完整代码如下:
```
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Random random = new Random();
BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"));
for (int i = 0; i < 15; i++) {
int num = random.nextInt(9979) + 20; // 生成20~9999之间的随机整数
writer.write(num + "\n"); // 写入文件
}
writer.close(); // 关闭文件流
Scanner scanner = new Scanner(new File("data.txt"));
int[] nums = new int[15];
int i = 0;
while (scanner.hasNextInt()) {
nums[i++] = scanner.nextInt(); // 读取文件中的数据
}
Arrays.sort(nums); // 对数据进行排序
for (int num : nums) {
System.out.println(num); // 输出排序后的数据
}
}
}
```
### 回答2:
为了产生15个20~9999之间的随机整数,我们可以使用Java自带的Math类中的random()方法来实现。具体代码如下:
```java
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 随机产生15个20~9999之间的整数并写入文件data.txt
BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"));
for (int i = 0; i < 15; i++) {
int num = (int) (Math.random() * 9979) + 20;
writer.write(String.valueOf(num));
writer.newLine();
}
writer.close();
// 读取data.txt并将整数按升序排序
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
int[] numbers = new int[15];
String line;
int count = 0;
while ((line = reader.readLine()) != null) {
numbers[count++] = Integer.parseInt(line);
}
reader.close();
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = i + 1; j < numbers.length; j++) {
if (numbers[i] > numbers[j]) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
// 将排序后的整数输出到屏幕
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
}
}
}
```
代码首先创建一个BufferedWriter对象,用于将随机生成的15个整数写入文件data.txt中。每生成一个随机整数,就将其转为字符串并写入文件,并使用newLine()方法换行。最后关闭BufferedWriter对象。
接下来,代码使用BufferedReader和FileReader对象从data.txt中读取整数,并将它们存储在一个int型数组中。使用parseInt()方法将每行读取到的字符串转换成整数。读取完成后,使用冒泡排序法将数组按升序排序。
最后,代码使用for循环将排序后的整数输出到屏幕。
### 回答3:
本题要求我们产生随机整数并将它们写入文件data.txt中,然后再读取该文件中的数据并将它们进行排序并输出到屏幕上。
首先,我们可以使用Math.random()方法生成15个20~9999之间的随机整数,并将它们存储到一个数组中。具体方法如下:
int[] nums = new int[15];
for(int i=0;i<nums.length;i++){
nums[i]=(int)(Math.random()*9979+20);
}
接下来,我们可以用BufferedWriter类将这些随机数写入一个文件data.txt中。具体方法如下:
File file = new File("data.txt");
try {
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < nums.length; i++) {
bw.write(nums[i] + "");
bw.newLine();
}
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
写入完成后,我们需要读取data.txt文件的内容并进行排序。排序可以使用Arrays类的sort()方法来完成。具体方法如下:
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String str;
ArrayList<Integer> list = new ArrayList<>();
while ((str = br.readLine()) != null) {
list.add(Integer.parseInt(str));
}
br.close();
fr.close();
Integer[] sortnums = list.toArray(new Integer[0]);
Arrays.sort(sortnums);
System.out.println(Arrays.toString(sortnums));
} catch (IOException e) {
e.printStackTrace();
}
最后,我们将排序完成后的数组输出到屏幕上即可。
综上所述,本题需要实现生成随机数、写入文件、读取文件、排序以及输出排序后的结果等功能。通过使用相应的类和方法,我们可以轻松地完成这些任务。