• c#读取文本文档实践4-读入到list泛型集合计算后写入新文档


    商品 数量 单价
    英语 66 100
    语文 66 80
    数学 66 100
    化学 66 40
    物理 66 60

    上面截图是要处理的文本文档内容,目的是计算出总价并加在最后一列。

    这一篇与上一篇比较类似,目的相同,不同之处为读入到了list中,list泛型集合可以当作可变长数组使用。通过StreamReader创建一个流sr,然后通过一个while循环将读得的每行数据放入字符串类型的list中,之后对每个list分割,并返回一个字符串数组,这个字符串数组就可以通过转化为double来计算了,计算完成后可以通过放入sb中统一写入到文本文档中。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.IO;
     6 
     7 namespace 用list泛型集合操作文本文档
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             ////读取文本文档内容到list
    14             string fileName = @"C:UsersAdministratorDesktop书名总价格计算.txt";
    15             FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    16             List<string> list = new List<string>();
    17             StreamReader sr = new StreamReader(fs, Encoding.Default);//以默认的解码方式
    18             //使用StreamReader类来读取文件 
    19             sr.BaseStream.Seek(0, SeekOrigin.Begin);
    20             // 从数据流中读取每一行,直到文件的最后一行
    21             string tmp = sr.ReadLine();
    22             string[] strNew;
    23             StringBuilder sb = new StringBuilder();//创建sb
    24             int textLineCount = 0;
    25             while (tmp != null)
    26             {
    27                 list.Add(tmp);
    28                 tmp = sr.ReadLine();
    29                 Console.WriteLine(list[textLineCount++]);
    30                 if ((textLineCount - 1) != 0)
    31                 {
    32                     strNew = list[textLineCount - 1].Split(new char[] { ' ', '	' }, StringSplitOptions.RemoveEmptyEntries);
    33                     sb.Append(strNew[0].ToString() + " " + strNew[1].ToString() + " " + strNew[2].ToString() + " " + (Convert.ToDouble(strNew[1]) * Convert.ToDouble(strNew[2])).ToString() + System.Environment.NewLine);
    34                 }
    35                 else
    36                 {
    37                     //将list转换为字符串数组
    38                     strNew = list[textLineCount - 1].Split(new char[] { ' ', '	' }, StringSplitOptions.RemoveEmptyEntries);
    39                     //将字符串数组写入sb
    40                     sb.Append(strNew[0].ToString() + " " + strNew[1].ToString() + " " + strNew[2].ToString() + " 总价格" + System.Environment.NewLine);
    41                 }
    42 
    43             }
    44             //将sb输出到计算结果
    45             File.WriteAllText(@"C:UsersAdministratorDesktop书名总价格计算结果2.txt", sb.ToString());
    46             //查看文本文档共多少行
    47             //Console.WriteLine(textLineCount);
    48             //Console.WriteLine(list.Count );
    49             //查看list[1]内容
    50             Console.WriteLine(list[1]);
    51 
    52             //关闭此StreamReader对象 
    53             sr.Close();
    54             fs.Close();
    55         }
    56     }
    57 }

  • 相关阅读:
    windows快捷键十八式(win10)
    解决滚动条突然出现导致的页面错位问题
    用命令行撤销工作区的所有更改(修改文件&&新增文件)
    用animation的steps属性制作帧动画
    配置Gitlab pages和Gitlab CI
    zookeeper中的分布式一致性协议
    kafka消息的处理机制(五)
    Paxos算法原理
    kafka同步异步消费和消息的偏移量(四)
    kafka客户端和服务端开发(三)
  • 原文地址:https://www.cnblogs.com/zhubinglong/p/5818830.html
Copyright © 2020-2023  润新知