任务需求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();
}
}