2 jjzzggkk jjzzggkk 于 2016.05.11 17:48 提问

初学者有关IO流统计成绩到另一个文件的问题

编写一个程序RecordScore.java用来记录某课程的成绩,要求从键盘输入学生姓名和成绩,每行输入一个学生的成绩,输入end#表示输入结束。程序要统计出课程的平均成绩,并将输入的学生成绩和平均成绩保存到soor.txt文件。(提示:字符串的方法
split(" ")可以返回字符串中以空格分割的字符串数组。如str="张三 80";String[] s=
str.split(" ");则s[0]="张三",s[1]="80")
题目部分图片
图片说明
自己写的代码如下
package IOlianxi;
import java.io.*;
import java.util.*;
public class RecordScore {
public static void main(String[] args) {
try {
InputStreamReader str=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(str);
BufferedWriter bw=new BufferedWriter(new FileWriter("E://soore.txt"));
String st=null;
String[] s=st.split("");
while(!(st=br.readLine()).equals("quit")){

bw.write(s);
bw.newLine();
}
br.close();
bw.close();
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("没有指定文件");
}catch (Exception e) {
e.printStackTrace();
}
}
}
但是这个代码是错的,好像不能方数组,这里报错后面都不知道怎么写了
图片说明
都不知道怎么写了,求大神

2个回答

havedream_one
havedream_one   2016.05.11 20:41
已采纳
int count;
double score;
double avg;
while(!(st=br.readLine()).equals("quit")){
String[] tmp = st.split(" ");
score+= Double.valueOf(tmp[1]);//统计成绩
count++;//统计学生数
bw.write(st)
bw.newLine();
}
bw.write(score/count);
//bw.write(String.valueOf(score/count));上面错误就改成下面的这一条

andy_67
andy_67   2016.05.11 18:05

BufferedWriter可以放String,你需要读出字符串
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(destFile, true)));
writer.write(sb.toString());
writer.flush();

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!