现在有如下格式的成绩单(文本格式)score.txt: 姓名:张三,数学72 分,物理67 分,英语70 分. 姓名:李四,数学92 分,物理98 分,英语88 分. 姓名:周五,数学68 分,物理80 分,英语77 分. (1)要求编写java程序按行读取成绩单,并在该行的后面尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt 的文件中。
时间: 2024-03-24 09:39:50 浏览: 333
自然语言处理NLP企业级项目课程合集(实体关系抽取+情感分析+新闻文本分类+火车票识别+命名实体识别)
好的,以下是Java代码实现:
```java
import java.io.*;
public class ScoreAnalysis {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("score.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("scoreAnalysis.txt"));
String line;
while ((line = reader.readLine()) != null) {
String[] info = line.split(",");
String name = info[0].substring(3);
int mathScore = Integer.parseInt(info[1].substring(3, info[1].indexOf("分")));
int physicsScore = Integer.parseInt(info[2].substring(3, info[2].indexOf("分")));
int englishScore = Integer.parseInt(info[3].substring(3, info[3].indexOf("分")));
int totalScore = mathScore + physicsScore + englishScore;
String newLine = line + ",总成绩" + totalScore + "分。";
writer.write(newLine);
writer.newLine();
}
reader.close();
writer.close();
System.out.println("成绩单分析已完成!");
} catch (IOException e) {
System.out.println("文件读写异常:" + e.getMessage());
}
}
}
```
该程序会读取score.txt文件中的每一行数据,然后解析出姓名、数学成绩、物理成绩和英语成绩,计算出总成绩后,将该行数据的末尾加上总成绩信息,然后写入到scoreAnalysis.txt文件中。程序中使用了BufferedReader和BufferedWriter类来读写文件,使用了异常处理机制来处理文件读写可能出现的异常。
阅读全文