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

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

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

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; namespace 用list泛型集合操作文本文档
{
class Program
{
static void Main(string[] args)
{
////读取文本文档内容到list
string fileName = @"C:\Users\Administrator\Desktop\书名总价格计算.txt";
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
List<string> list = new List<string>();
StreamReader sr = new StreamReader(fs, Encoding.Default);//以默认的解码方式
//使用StreamReader类来读取文件
sr.BaseStream.Seek(, SeekOrigin.Begin);
// 从数据流中读取每一行,直到文件的最后一行
string tmp = sr.ReadLine();
string[] strNew;
StringBuilder sb = new StringBuilder();//创建sb
int textLineCount = ;
while (tmp != null)
{
list.Add(tmp);
tmp = sr.ReadLine();
Console.WriteLine(list[textLineCount++]);
if ((textLineCount - ) != )
{
strNew = list[textLineCount - ].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
sb.Append(strNew[].ToString() + " " + strNew[].ToString() + " " + strNew[].ToString() + " " + (Convert.ToDouble(strNew[]) * Convert.ToDouble(strNew[])).ToString() + System.Environment.NewLine);
}
else
{
//将list转换为字符串数组
strNew = list[textLineCount - ].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
//将字符串数组写入sb
sb.Append(strNew[].ToString() + " " + strNew[].ToString() + " " + strNew[].ToString() + " 总价格" + System.Environment.NewLine);
} }
//将sb输出到计算结果
File.WriteAllText(@"C:\Users\Administrator\Desktop\书名总价格计算结果2.txt", sb.ToString());
//查看文本文档共多少行
//Console.WriteLine(textLineCount);
//Console.WriteLine(list.Count );
//查看list[1]内容
Console.WriteLine(list[]); //关闭此StreamReader对象
sr.Close();
fs.Close();
}
}
}

c#读取文本文档实践4-读入到list泛型集合计算后写入新文档的更多相关文章

  1. 使用page object模式抓取几个主要城市的pm2.5并从小到大排序后写入txt文档

    #coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...

  2. spark 读取hive 计算后写入hive

    package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, Spa ...

  3. JavaScript document open() 方法:打开一个新文档

    <html> <head> <script type="text/javascript"> function createNewDoc() { ...

  4. c#读取文本文档实践3-写入到文本本文档

    首先通过File.ReadAllLines()方法读入文本文档中内容并返回字符串数组contents,这样每行数据就成为了这个字符串数组contents的一个元素,再利用split()方法将每一个元素 ...

  5. c#读取文本文档实践2-计算商品价格

    商品 数量 单价英语 66 100语文 66 80数学 66 100化学 66 40物理 66 60 上面是文本文档中读入的数据. using System; using System.Collect ...

  6. c#读取文本文档实践1-File.ReadAllLines()

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  7. matlab中读取txt数据文件(txt文本文档)

    matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...

  8. C# 读取文本文档(转)

    1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. byte[] byData = ...

  9. AJAX实现简单的读取文本文档内容到网页--AJAX

    效果图: Demo.html: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

随机推荐

  1. iPad和iPhone开发区别

    原文:http://mobile.51cto.com/iphone-273895.htm iPad与iPhone 开发区别详解是本文要介绍的内容,先来看看他们的区别. 1.首先我们先从官方发布的SDK ...

  2. Super Ugly Number

    eg 2,3,5 把第一个元素(2,1)放到最小堆,2表示乘积,1表示乘数   乘数     队列                          最小堆                   即将进 ...

  3. 利用win7系统自带的dos命令把笔记本无线网卡当无线路由器(无线AP发射器)

    利用win7系统自带的dos命令把笔记本无线网卡当无线路由器(无线AP发射器). 1.打开win7开始菜单,找到命令提示符选项,以管理员身份运行cmd.2.在命令行上输入:netsh wlan set ...

  4. 初学画布canvas的chapter2

    文本 1.字体属性 context.font = [css font property] ——使用CSS规范,语法跟CSS字体速记符号一致 ——line-height无效,并永远忽略 Context. ...

  5. 事务码 ListSchema:查看Cube星型结构Schema

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. Intellij自动下载导入框架包

    忽然发现intellij尽然可以自动导入 框架所需的包,而且可以选择jar包版本,瞬间发现Maven,gradle管理jar包还得写配置文件弱爆了. 以Hibernate为例: 1.ProjectSt ...

  7. vi/vim基本使用方法

    vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...

  8. sqlloader导出数据和导入数据

    分类: Oracle 忙了一天终于把sqlloader导出数据和导入数据弄清楚了,累死俺了... 这个总结主要分为三个大部分,第一部分(实例,主要分两步),第二部分(参数小总结),第三部分(完全参数总 ...

  9. python成长之路【第二篇】:列表和元组

    1.数据结构数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence) ...

  10. CSS的压缩 方法与解压

    为什么要压缩CSS? 1.大网站节约流量 2.加快访问速度 工具:Dreamweaver(手工替换,个人感觉任何文本编辑器都可以)不过DW可以还原 CSS压缩与CSS代码压缩还原方法,CSS压缩工具有 ...