javaweb 班里有60个同学,学号为“20208305X”,X为1-60。创建文件名为“D:\\ Test \学号. txt”的文件,内容为1-100的随机数。读取Test文件夹下的文件内容,输出到文件“D:\\ Test \score.txt”,内容为“学号:成绩”。
时间: 2024-05-01 21:17:36 浏览: 80
学生成绩.java
好的,根据您的要求,我来给您解答。首先,您可以使用Java的随机数生成器来生成1-100之间的随机数,然后将其写入文件。下面是代码示例:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int numOfStudents = 60;
String prefix = "20208305";
String folderName = "D:\\Test";
for (int i = 1; i <= numOfStudents; i++) {
String id = prefix + i;
String fileName = folderName + "\\" + id + ".txt";
try (FileWriter writer = new FileWriter(fileName)) {
Random random = new Random();
for (int j = 0; j < 100; j++) {
int score = random.nextInt(100) + 1;
writer.write(score + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
以上代码使用了Java的文件读写相关类,可以将生成的随机数写入对应的文件中。接下来,您可以使用Java的文件读取相关类,读取Test文件夹下的成绩文件,并将学号和成绩一一对应,写入新的文件中。下面是代码示例:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String folderName = "D:\\Test";
String scoreFileName = folderName + "\\" + "score.txt";
try (FileWriter writer = new FileWriter(scoreFileName)) {
for (int i = 1; i <= 60; i++) {
String id = "20208305" + i;
String fileName = folderName + "\\" + id + ".txt";
int sum = 0;
int count = 0;
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
int score = Integer.parseInt(line.trim());
sum += score;
count++;
}
} catch (IOException e) {
e.printStackTrace();
}
int average = count > 0 ? sum / count : 0;
writer.write(id + ": " + average + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码读取了Test文件夹下每个学生的成绩文件,计算出平均成绩,然后将学号和成绩写入新的文件中。注意文件路径和文件名的设置,这里可以根据具体项目需要进行修改。另外,为了保证代码的可读性和可维护性,您还可以将一些常量抽取为类成员变量或常量,使用具有描述性的变量名等。
阅读全文