Java的IO流 : 计算平均小数(A.txt存储所有小数,B.txt存储A.txt中所有小数的平均数)

任务需求3:

                         已知有一组带小数的数值(小数点后位数5位以内)存放在文件src.txt中,

                         每个数值都用','间隔,数值存放的格式如下:1,12,1.35,2.56,4.67,…,19.45                        

                         现请编程实现求文件src.txt文件中数值的平均值,并将结果记录到文件dst.txt中。
所需知识点:

                          1.运用File类进行文件和目录操作;

                          2.用字节流、字符流实现文件的读写;

代码如下:

package cn.demo.main;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws IOException {
	
		 Demo();
	}

	private static void Demo() throws IOException, FileNotFoundException {
		Scanner scr = new Scanner(System.in);
		 File file = new File("D:\\homework\\src.txt") ;
		 FileWriter fw = new FileWriter(file) ;
		 BufferedWriter bw = new BufferedWriter(fw) ;
		 String str = scr.next() ; 
		 bw.write(str);
		 bw.flush();
		 FileReader fr = new FileReader(file) ;
		 BufferedReader br = new BufferedReader(fr);
		 String line = br.readLine() ;
		 StringBuffer sbf = new StringBuffer() ;
		 while(line!=null){
			  sbf.append(line);
			  line = br.readLine() ;
		 }
		 String[] newArr = sbf.toString().split(",");
		 double[] newArr1 = new double[newArr.length] ;
		 double sum = 0 ; 
		 for(int i=0;i<newArr.length;i++){
			 newArr1[i] = Double.parseDouble(newArr[i]);
			 sum+=newArr1[i] ;
		 }
		 sum = sum / newArr.length ;
		 File file1 = new File("D:\\homework\\dst.txt") ;
		 FileWriter fw1 = new FileWriter(file1) ;
		 BufferedWriter bw1 = new BufferedWriter(fw1) ;
		 String newStr = sum + "";
		 bw1.write(newStr);
		 bw1.flush();
		 bw1.close();
		 bw.close();
	}
}

猜你喜欢

转载自blog.csdn.net/Ameir_yang/article/details/81940397