关于文件的建立与读写处理方式(二)

编写一个应用程序,从文件a.txt中读取数据,对每一行的数据进行筛选出数字字符,并对其进行求和与求平均值,并将计算结果追加在每行的行末,输出到文件b.txt中。结果示例如下:
a.txt:
gh56werfre35jh 67vb 34dg
56ghnmb lji34 uioj59 lkj34 98 jlkj48
78rt89,[96 45
b.txt:
gh56werfre35jh 67vb 34dg sum=192.0,average=48.0
56ghnmb lji34 uioj59 lkj34 98 jlkj48 sum=329.0,average=54.833333333333336
78rt89,[96 45 sum=308.0,average=77.0

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class Example10_7 {
   public static void main(String args[]) {
      File fRead = new File("F:/面对对象分析与设计","a.txt");
      File fWrite = new File("F:/面对对象分析与设计","b.txt");
      
      
      try{  Writer out = new FileWriter(fWrite);
            BufferedWriter bufferWrite = new BufferedWriter(out);
            Reader in = new FileReader(fRead);
            BufferedReader bufferRead =new BufferedReader(in);
            String str = null;
            while((str=bufferRead.readLine())!=null) {
               String regex="\\D+"; 
               String[] n2=str.split(regex);
               double sum=0; 
               int p=0;
               for(int j=0;j<n2.length;j++){
            	   
            	   if(!"".equals(n2[j])){      		 
             	      sum = sum+Double.parseDouble(n2[j]);
                      p++;
                       }  
                   }           
                    String s2=(str+"  和: "+sum+"   "+"平均值:"+(sum/p));   
               bufferWrite.write(s2);
               bufferWrite.newLine();          
            } 
            bufferWrite.close(); 
            out.close();
            in = new FileReader(fWrite);
            bufferRead =new BufferedReader(in);
            String s=null;
            System.out.println(fWrite.getName()+"内容:");
            while((s=bufferRead.readLine())!=null) {
              System.out.println(s);
           }  
           bufferRead.close();
           in.close();
            }
      catch(IOException e) {
          System.out.println(e.toString());
      }
   }
}

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值