选择题
程序片段编程题
1. 从文件中读取成绩,按照要求处理后,并输出到指定文件中
【问题描述】
现有如下格式的成绩单(文本格式)score.txt。
name:zhangsan,shuxue 72,wuli 67,yingyu 70
name:lisi,shuxue 92,wuli 98,yingyu 88
name:wangwu,shuxue 68,wuli 80,yingyu 77
要求按行读取成绩单。并在该行的后面加上该同学的总成绩。然后将该行写入到一个名字为scoreAnalysis.txt的文件中。
【score.txt输入形式】
name:zhangsan,shuxue 72,wuli 67,yingyu 70
name:lisi,shuxue 92,wuli 98,yingyu 88
name:wangwu,shuxue 68,wuli 80,yingyu 77
【scoreAnalysis.txt输出形式】
name:zhangsan,shuxue 72,wuli 67,yingyu 70 zongFen:209.0
name:lisi,shuxue 92,wuli 98,yingyu 88 zongFen:278.0
name:wangwu,shuxue 68,wuli 80,yingyu 77 zongFen:225.0
import java.io.*;
//import java.util.*;
class Fenxi
{
BufferedReader reader = null;
String[] name = new String[3];
String[] shuxue = new String[3];
String[] wuli = new String[3];
String[] yingyu = new String[3];
String[] zongfen = new String[3];
public Fenxi()
{
try
{
FileReader fileReader = new FileReader("d://score.txt");
reader = new BufferedReader(fileReader);
int i = 0;
String line;
String[] data;
for (; i < 3; i++)
{
line = reader.readLine();
data = line.split(",");
name[i] = data[0].split(":")[1];
shuxue[i] = data[1].split(" ")[1];
wuli[i] = data[2].split(" ")[1];
yingyu[i] = data[3].split(" ")[1];
zongfen[i] = String.valueOf(Integer.parseInt(shuxue[i]) + Integer.parseInt(wuli[i]) + Integer.parseInt(yingyu[i]));
}
fileReader.close();
reader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public class AnalysisResult
{
public static void main(String[] args)
{
Fenxi fenxi = new Fenxi();
try
{
FileWriter fileWriter = new FileWriter("d://scoreAnalysis.txt");
BufferedWriter out = new BufferedWriter(fileWriter);
for (int i = 0; i < 3; i++)
{
String str = "name:"+fenxi.name[i]+",shuxue "+fenxi.shuxue[i]+",wuli "+fenxi.wuli[i]+",yingyu "+fenxi.yingyu[i]+" zongFen:"+fenxi.zongfen[i]+".0";
out.write(str);
out.flush();
out.newLine();
}
out.close();
fileWriter.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}