java培训学习笔记一

java基础:用Java的io包导出txt文件中的数据,并计算平均成绩,最后将平均成绩写回到txt文件末尾

txt文件如下:

张三;59

李四;60

王五;90

赵倩;70       

具体代码如下:

package com.sirc.javatrain.lession1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class StatisticsGrade {

 /**
  * @param args
  * @throws IOException
  */
   public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
   //调用老师写的方法 
    teach();

   //调用自己写的方法
    //my();
 }
   /*
    * 自己写的代码(存储用类对象)
    */
   public static void my()
   {
      String fileName="F:/Java/lession1/demo/student.txt";
      BufferedReader br = null;
      try {
       br = new BufferedReader(new FileReader(fileName));
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
    }

    //实例化学生对象
    List<Student> student=new ArrayList<Student>();

    try {
       String r;
       r = br.readLine(); //读取第一行
  
      Student stu=new Student();
      String[] line=new String[2];
      while(r!=null){
       line = r.split(";");
       stu.setName(line[0]);
       stu.setGrade(line[1]);
       student.add(stu);
       r=br.readLine();//读取下一行
    }

    int gradeSum=0;
  
    for (Student student2 : student) {
     if(student2!=null)
       gradeSum+=Integer.parseInt(student2.getGrade());
    }
    int count=student.size();
    double avg=gradeSum/count;
  
    System.out.println("总成绩" + gradeSum);
    System.out.println("平均值:" + avg);
  
      BufferedWriter writer=new BufferedWriter(new FileWriter(fileName,true));
      writer.newLine();
    writer.write("平均成绩;"+String.valueOf(avg));  
  
      if(writer!=null){
     writer.close();
    }
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }

   }
 /*
  * 老师写的代码
  */
 public static void teach() throws IOException{
  String fileName="F:/Java/lession1/demo/student.txt";
  //通过路径读取文件
  BufferedReader reader=new BufferedReader(new FileReader(fileName));
  //定义行数
  String content=null;
  int count=0;
  int chengji=0;  //平均成绩
  int chengjiAll=0; //总成绩
  content=reader.readLine(); //读取txt文件第一行
  //循环读取txt文件每一行,并解析打印出来
  while (content!=null) {
   String[] tmpArray=content.split(";");
   chengji=Integer.parseInt(tmpArray[1]);
   System.out.println(tmpArray[0]+":"+tmpArray[1]);
   chengjiAll+=chengji;
   count++;
   content=reader.readLine();
  }
  
  double avg=chengjiAll/count;
  System.out.println(chengjiAll);
  System.out.println("平均成绩:"+avg);
  //关闭读出流
  if(reader!=null)
  {
   reader.close();
  }
  //定义写入流,写入到文件的末尾
  BufferedWriter writer=new BufferedWriter(new FileWriter(fileName,true)); 
  //换行
  writer.newLine();
  writer.write("平均成绩;"+String.valueOf(avg)); 
  //关闭写入流
  if(writer!=null){
   writer.close();
  }
 }

}

学生对象类:

package com.sirc.javatrain.lession1;

public class Student {

 /**
  * @param args
  */
 private String name;
 private String grade;
 public void setName(String name) {
  this.name = name;
 }
 public String getName() {
  return name;
 }
 public void setGrade(String grade) {
  this.grade = grade;
 }
 public String getGrade() {
  return grade;
 }
}

原文地址:https://www.cnblogs.com/gisdream/p/1876555.html