产生15个20~9999之间的随机整数,然后利用bufferedwriter类将其写入文件file.txt中,之后再读取该文件中的数据并将它们按升序排序,然后在显示器输出。
时间: 2023-05-31 08:18:47 浏览: 265
### 回答1:
好的,以下是用中文回复:
1. 产生15个20~9999之间的随机整数:
可以使用Java中的Random类来生成随机数,然后使用循环语句生成15个随机整数,代码如下:
```
Random random = new Random();
int[] nums = new int[15];
for (int i = ; i < 15; i++) {
nums[i] = random.nextInt(9979) + 20;
}
```
2. 利用BufferedWriter类将其写入文件file.txt中:
可以使用Java中的FileWriter和BufferedWriter类来将数据写入文件,代码如下:
```
File file = new File("file.txt");
try {
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
for (int i = ; i < 15; i++) {
bw.write(nums[i] + "\n");
}
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
```
3. 读取该文件中的数据并将它们按升序排序:
可以使用Java中的FileReader和BufferedReader类来读取文件中的数据,然后使用Arrays类的sort方法将数据排序,代码如下:
```
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
List<Integer> list = new ArrayList<>();
while ((line = br.readLine()) != null) {
list.add(Integer.parseInt(line));
}
br.close();
fr.close();
Collections.sort(list);
nums = new int[list.size()];
for (int i = ; i < list.size(); i++) {
nums[i] = list.get(i);
}
} catch (IOException e) {
e.printStackTrace();
}
```
4. 在显示器输出:
最后,可以使用循环语句将排序后的数据输出到控制台,代码如下:
```
for (int i = ; i < nums.length; i++) {
System.out.println(nums[i]);
}
```
### 回答2:
本题需要运用Java语言编程。首先需要先产生15个20~9999之间的随机整数,可以使用Java中的Random类配合循环语句来实现,代码如下:
```
Random random = new Random();
int min = 20; // 最小范围
int max = 9999; // 最大范围
int[] nums = new int[15]; // 存储15个随机整数的数组
for (int i = 0; i < 15; i++) {
int num = random.nextInt(max - min + 1) + min; // 生成随机整数
nums[i] = num;
}
```
接着需要将这15个随机整数写入文件file.txt中,可以使用Java中的BufferedWriter类来实现,代码如下:
```
File file = new File("file.txt");
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(file));
for (int i = 0; i < nums.length; i++) {
writer.write(nums[i] + " "); // 写入随机整数
}
writer.flush();
System.out.println("写入文件成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
在将随机整数写入文件后,需要读取文件内容并按升序排序,可以使用Java中的BufferedReader类配合Arrays类来实现,代码如下:
```
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
String[] strs = line.split(" "); // 将字符串按空格切分
int[] nums = new int[strs.length];
for (int i = 0; i < strs.length; i++) {
nums[i] = Integer.parseInt(strs[i]); // 将字符串转换为整数
}
Arrays.sort(nums); // 升序排序
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " "); // 输出排序后的整数
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
最后将排序后的整数在显示器上输出即可。
### 回答3:
这道题的解法可以分为三个步骤:生成随机数、将随机数写入文件、读取文件中的数据并进行排序。
首先,我们需要生成15个范围在20~9999之间的随机整数。我们可以通过Java的随机数生成器Random来完成这个过程。具体方法为:
```
Random random = new Random();
int[] nums = new int[15];
for (int i = 0; i < 15; i++) {
nums[i] = random.nextInt(9979) + 20; // 生成20~9998之间的随机整数
}
```
接下来,我们需要将这15个随机数写入文件file.txt中。为了提高写入效率,我们可以使用BufferedWriter类来进行文件写入操作。具体方法为:
```
BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
for (int i = 0; i < 15; i++) {
writer.write(Integer.toString(nums[i]));
writer.newLine(); // 每个数占一行
}
writer.flush(); // 清空缓冲区并强制写入文件
writer.close(); // 关闭文件
```
最后,我们需要读取文件中的数据并进行排序。为了提高读取效率,我们可以使用BufferedReader类来进行文件读取操作,并将读取到的数存储在一个数组中,再使用Arrays类的sort方法对数组进行排序。具体方法为:
```
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
int[] sortedNums = new int[15];
String line;
int i = 0;
while ((line = reader.readLine()) != null) {
sortedNums[i++] = Integer.parseInt(line);
}
reader.close(); // 关闭文件
Arrays.sort(sortedNums); // 对数组进行排序
for (i = 0; i < 15; i++) {
System.out.println(sortedNums[i]); // 在显示器输出排序后的结果
}
```
以上就是本题的解法。完整代码如下:
```java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Random random = new Random();
int[] nums = new int[15];
for (int i = 0; i < 15; i++) {
nums[i] = random.nextInt(9979) + 20; // 生成20~9998之间的随机整数
}
BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
for (int i = 0; i < 15; i++) {
writer.write(Integer.toString(nums[i]));
writer.newLine(); // 每个数占一行
}
writer.flush(); // 清空缓冲区并强制写入文件
writer.close(); // 关闭文件
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
int[] sortedNums = new int[15];
String line;
int i = 0;
while ((line = reader.readLine()) != null) {
sortedNums[i++] = Integer.parseInt(line);
}
reader.close(); // 关闭文件
Arrays.sort(sortedNums); // 对数组进行排序
for (i = 0; i < 15; i++) {
System.out.println(sortedNums[i]); // 在显示器输出排序后的结果
}
}
}
```
当然,这只是一种解法,还有其他多种解法,不同的解法有着各自的优缺点,可以根据具体情况进行选择。