java-文件学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BODOA/article/details/80305704
将数据写入文件,并提取学生成绩。
package student;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.text.NumberFormat;

public class Second {

	
	public void wirte() throws Exception{
		
		InputStreamReader  isr = new InputStreamReader(System.in);  //数据从哪来?---键盘输入数据
		BufferedReader br1 = new BufferedReader(isr);
		
		FileWriter fw1= new FileWriter("E:\\java\\info.txt");   //数据到哪去?---数据写入文件
		BufferedWriter bw1 = new BufferedWriter(fw1);
		
		String s1 = null;
		while(true) {
			
		System.out.println("请输入姓名");
		s1 = br1.readLine(); //读取数据到s1	
		if(s1.equals(""))
			break;	
		bw1.write(s1); //写入数据
		bw1.newLine();
		
		System.out.println("请输入学号");
		s1 = br1.readLine(); //读取数据到s1	
		if(s1.equals(""))
			break;
		bw1.write(s1); //写入数据
		bw1.newLine();
		
		System.out.println("请输入成绩");
		s1 = br1.readLine(); //读取数据到s1
		if(s1.equals(""))
			break;
		bw1.write(s1); //写入数据
		bw1.newLine();
		
		}
		br1.close();     //关闭流
		bw1.close();
		
	}
	
   public void read() throws Exception{//从文件中读取成绩 ,输出max,min,agv
		//如何往出读
	   // 
		FileReader fr2 = new FileReader("E:\\java\\info.txt");  //从文件中读入数据
		BufferedReader br2 = new BufferedReader(fr2);
		
		int max =0;
		int min = 100;
		int sum=0;
		int  n=0;
		int gread = 0;
		
		String sname=null,sno=null,sname1=null,sno1=null,sname2=null,sno2=null;
		while(true) {
			String s2;
			sname = br2.readLine();
			if(sname==null)break;
			sno = br2.readLine();
		    s2 = br2.readLine();  //读到成绩
		    gread = Integer.parseInt(s2);  //转化数据为int数值
			n++;
			sum+=gread;
			if(gread>max) {max=(int) gread;sname1=sname;sno1=sno;}
			if(gread<min) {min=(int) gread;sname2=sname;sno2=sno;}
			
		}
		double ave=sum*1.0/n;
		NumberFormat f= NumberFormat.getInstance();
		f.setMaximumFractionDigits(2);
		System.out.println("平均值:"+f.format(ave));//控制小数位数
		System.out.println("最高分: "+max+"    姓名: "+sname1+"    学号: "+sno1);
	    System.out.println("最小值:"+min+"    姓名: "+sname2+"    学号: "+sno2);
	}

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
       Second sd = new Second();
       sd.wirte();
       sd.read();
	}

}

//要求:

//1、添加年龄 
//2、定义学生信息类,所有信息都定义数组 ---->数据从数组中往文件中写入(不同类型方法写入)  过滤流---data
//3、说有数据从文件中读出(不同类型方法读出),输出到屏幕

猜你喜欢

转载自blog.csdn.net/BODOA/article/details/80305704