问题描述
- 初学者有关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();
}
}
}
但是这个代码是错的,好像不能方数组,这里报错后面都不知道怎么写了
、
都不知道怎么写了,求大神
解决方案
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));上面错误就改成下面的这一条
解决方案二:
BufferedWriter可以放String,你需要读出字符串
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(destFile, true)));
writer.write(sb.toString());
writer.flush();
时间: 2024-09-11 11:38:30