编写程序,从提供的“学生名单.txt”文件中读取学生的学号和姓名信息,文件中每一行为一名学生的个人信息,并以读取到的学号姓名为每个学生创建一个以其学号姓名命名的文本文件(如:20220001张三.txt)。
3、将从“学生名单.txt”中读取到的每名学生的个人信息(学号、姓名、性别3项),以“20220001-张三-男”的格式写入到以对应学生学号姓名命名的文本文件中。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Student {
public static void main(String[] args) {
String fileName = "学生名单.txt";
File file = new File(fileName);
List<Object> list = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
String[] fields = line.split("\\s+");
writerStudent(fields);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writerStudent(String[] fields) {
if (fields.length!=3) {
System.out.println("文件内容格式不合法");
return;
}
String studentId = fields[0];
String studentName = fields[1];
String studentGender = fields[2];
String fileName2 = studentId+".txt";
FileWriter writer = null;
try {
writer = new FileWriter(new File(fileName2));
writer.write(studentId + "-" + studentName + "-" + studentGender);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
# 读取学生名单文件
with open('学生名单.txt', 'r') as file:
lines = file.readlines()
# 处理每行学生信息
for line in lines:
student_info = line.strip().split(' ')
student_id = student_info[0]
student_name = student_info[1]
# 创建以学号姓名命名的文本文件
file_name = f'{student_id}-{student_name}.txt'
# 写入学生个人信息到对应的文本文件中
with open(file_name, 'w') as file:
file.write(f'学号:{student_id}\n')
file.write(f'姓名:{student_name}\n')
file.write('性别:\n') # 这里需要用户输入性别信息
print(f'已创建文件:{file_name},并写入学生个人信息。')
请注意,上述示例程序假设学生名单文件的格式为每行包含学生的学号和姓名信息,以空格分隔。在实际运行程序前,请确保学生名单文件存在,并将代码中的文件名“学生名单.txt”替换为实际的文件路径。