老师没有讲过这个,我也没有找到相关的网课,路过的大佬拜托看看讲一下,留下网课链接也可以,超级感谢,被课设逼的秃头倒霉孩子
文件的写入写出。然后转为对象。网上很多哦。你百度io流的学习就好了
如有帮助,请采纳。点击我回答右上角【采纳】按钮
参考一下:原文地址https://blog.csdn.net/jsc123581/article/details/81913486
package program.stream.exercise08;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 8.有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),
* 计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"student.txt"中。
*/
public class StudentInformation {
public static void main(String[] args) {
Student[] students = new Student[5];
inputInformation(students);
outputInformation(students);
}
//静态内部学生类
static class Student { //定义学生模型
private int id; //学生的学号
private String name; //学生的姓名
private double[] grades = new double[3]; //学生的三门成绩
private double sum; //学生总成绩
public Student(){}
public Student(int id, String name, double[] grades, double sum) {
this.id = id;
this.name = name;
this.grades[0] = grades[0];
this.grades[1] = grades[1];
this.grades[2] = grades[2];
this.sum = sum;
}
}
//学生信息的输入:学号,姓名,成绩
private static void inputInformation(Student[] students) {
int id = 0; //学号
String name = null; //姓名
double[] grades = new double[3]; //三门成绩
double sum = 0; //总成绩
//输入学生信息
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(System.in));
for (int i=0; i<students.length; i++) {
System.out.print("输入第"+(i+1)+"名学生的学号:");
id = Integer.parseInt(br.readLine());//将String转换成int类型
System.out.print("输入第"+(i+1)+"名学生的姓名:");
name = br.readLine();
sum = 0;//注意:每计算一名学生的总成绩后,总成绩要重新归零
//输入成绩,注意:此处使用grades.length而不使用students[i].grades.length
//否则出现空指针,原因:此时学生类中还没有写入信息,长度为0
for (int j=0; j<grades.length; j++) {
System.out.print("输入第"+(i+1)+"名学生的第"+(j+1)+"门成绩:");
grades[j] = Double.parseDouble(br.readLine());//将String转换成Double类型
sum += grades[j]; //计算总成绩
}
System.out.println();
students[i] = new Student(id, name, grades, sum);
}
System.out.println("输入完成!");
}catch(Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//学生信息的输出:学号,姓名,成绩
private static void outputInformation(Student[] students) {
//写入学生信息
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("src\\program\\stream\\exercise08\\student.txt"));
bw.write("Id\t"+"Name\t"+"Grade1\t"+"Grade2\t"+"Grade3\t"+"Average\t\r\n");//\r\n:换行
for (int i=0; i<students.length; i++) {
bw.write(students[i].id+"\t");
bw.write(students[i].name+"\t\t");
for (int j=0; j<students[i].grades.length; j++) {
bw.write(students[i].grades[j]+"\t");
}
bw.write(students[i].sum/3+"\t\r\n");
}
System.out.println("写入完成!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}