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

商品 数量 单价
英语 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泛型集合计算后写入新文档的更多相关文章
- 使用page object模式抓取几个主要城市的pm2.5并从小到大排序后写入txt文档
#coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...
- spark 读取hive 计算后写入hive
package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, Spa ...
- JavaScript document open() 方法:打开一个新文档
<html> <head> <script type="text/javascript"> function createNewDoc() { ...
- c#读取文本文档实践3-写入到文本本文档
首先通过File.ReadAllLines()方法读入文本文档中内容并返回字符串数组contents,这样每行数据就成为了这个字符串数组contents的一个元素,再利用split()方法将每一个元素 ...
- c#读取文本文档实践2-计算商品价格
商品 数量 单价英语 66 100语文 66 80数学 66 100化学 66 40物理 66 60 上面是文本文档中读入的数据. using System; using System.Collect ...
- c#读取文本文档实践1-File.ReadAllLines()
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- C# 读取文本文档(转)
1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. byte[] byData = ...
- AJAX实现简单的读取文本文档内容到网页--AJAX
效果图: Demo.html: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
随机推荐
- :only-child
如果某个元素是父元素中唯一的子元素,那将会被匹配 如果父元素中含有其他元素,那将不会被匹配.(注:这里的其他元素并不包含文本节点,如:<p><img/>图片</p> ...
- Hadoop之为何不使用RAID?
一.引言: 在一次和同事的讨论中遇到一个这样的问题:有一个hadoop集群,在hbase的put数据出现瓶颈,他们想要把datanode上的磁盘做成RAID 0(比如10块磁盘做成一个RAID 0), ...
- css样式控制鼠标滑过显示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [转]SOCKET通信中TCP、UDP数据包大小的确定
TCP.UDP数据包大小的确定 UDP和TCP协议利用端口号实现多项应用同时发送和接收数据.数据通过源端口发送出去,通过目标端口接收.有的网络应用只能使用预留或注册的静态端口:而另外一些网络应用则可以 ...
- eclipse编辑struts.xml 代码提示
先确定xml文件 window-preferences-查询catalog 点击add 关于这个Location 先找到你下载的struts压缩包 然后找到 解压这个jar包 你会得到一些dtd文件 ...
- Cookie与Session的区别
cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Management Mechanism 是通用c ...
- zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
- 2016年12月21日 星期三 --出埃及记 Exodus 21:16
2016年12月21日 星期三 --出埃及记 Exodus 21:16 "Anyone who kidnaps another and either sells him or still h ...
- git@Osc初识
加油! 参考博客:http://www.cnblogs.com/lpshou/archive/2013/07/18/3199243.html 今天尝试了下git@osc的项目导入,基本算是入门了git ...
- hdu4758Walk Through Squares(ac自动机+dp)
链接 dp[x][y][node][sta] 表示走到在x,y位置node节点时状态为sta的方法数,因为只有2个病毒串,这时候的状态只有4种,根据可走的方向转移一下. 这题输入的是m.N,先列后行, ...