这篇博客参照http://www.cnblogs.com/insus/archive/2013/08/08/3247078.html

题目是这样的:

一个txt文件,内容格式:

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79 35.7 2013-08-09 15-38-59

现在要想这样输出:

|39.4%|2013-07-0915-38-79|35.7|2013-08-0915-38-59|
|35.7|2013-08-0915-38-59|39.4%|2013-07-0915-38-79|
|35.7|2013-08-0915-38-59|35.7|2013-08-0915-38-59|

直接贴代码:我的代码跟原帖由些不同。我的代码中用的是ref(不需先赋值,out得先赋值),另外我这里一个方法用的是静态函数,一个用非静态,其实道理都是一样。

 class Program
{
static void Main(string[] args)
{
string[] lines = File.ReadAllLines("../../ReadLineToAnotherTypeOfShow.txt"); List<ChangeClass> ccList=new List<ChangeClass> ();
ChangeClass ccItem = null; foreach(string line in lines)
{
//方法一
//ChangeClass cc = new ChangeClass();
//cc.TryParse(line,ref ccItem);
//方法二
if( ChangeClass2.TryParse(line,ref ccItem))
ccList.Add(ccItem);
} for (int i = 1; i < ccList.Count;i=i+2 )
{
Console.WriteLine("|"+ccList[i-1]+"|"+ccList[i]+"|");
} Console.ReadKey(); } } partial class ChangeClass
{
protected string e1;
protected string e2; public ChangeClass() { }
public ChangeClass(string e1,string e2)
{
this.e1 = e1;
this.e2 = e2;
} public bool TryParse(string singelLine,ref ChangeClass item)
{
if (string.IsNullOrEmpty(singelLine.Trim()))
{
return false;
}
string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "")
return false; e1 = array[0].ToString();
e2 = array[1] + array[2].ToString(); item = new ChangeClass(e1,e2);
return true;
} public override string ToString()
{
return "" + e1 + "|" + e2 + "";
} } partial class ChangeClass2
{
protected static string E1;
protected static string E2; public ChangeClass2(string e1, string e2)
{
E1 = e1;
E2 = e2;
} public static bool TryParse(string singelLine, ref ChangeClass item)
{
if (string.IsNullOrEmpty(singelLine.Trim()))
{
return false;
}
string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "")
return false; E1 = array[0].ToString();
E2 = array[1] + array[2].ToString(); item = new ChangeClass(E1, E2);
return true;
} public override string ToString()
{
return "" + E1 + "|" + E2 + "";
} }

  总结上面的几个知识点:1。从changclass2可以发现,其实静态变量也是可以通过构造函数赋值的。

2、我们也可以通过静态的类型构造函数对静态赋值,但是,不能有参数,形如: static ChangeClass2(){E1=10;}//

通过静态变量赋值,必须是常量。

3、ref和out都引用同一个内存块,不同是,声明ref的变量不需赋值,而out变量要提前赋值;

4.这个方法中还有一种思想:

通过foreach和迭代器结合,操作数组。我们通过在classchange类中重写头string()方法,导致在main()中调用console.writline(classchange的实例),会直接调用重写的头string()方法,从而输出我们自己想要的结果;

读取txt文件,并用其他格式显示的更多相关文章

  1. jquery读取csv文件并用json格式输出

    直接贴上代码: <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untit ...

  2. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

  3. 路径正确下,Eclipse读取txt文件仍失败

    症状:使用Eclipse读取文件时,路径输入确认正确(前提!!!),但控制台总报错: 错误类型一: Exception in thread "main" java.io.FileN ...

  4. 读取txt文件加DevExpress之进度条progressBarControl

    进度条使用 主要掌握下边几个命令, //水平进度条 progressBarControlH.Properties.Minimum = 0;//1:设置最大数量,比如读取txt文件内容,先要查出行数,然 ...

  5. Java中读取txt文件中中文字符时,出现乱码的解决办法

    这是我写的一个Java课程作业时,遇到的问题. 问题描述: 我要实现的就是将txt文件中的内容按一定格式读取出来后,存放在相应的数组. 我刚开始运行时发现,英文可以实现,但是中文字符就是各种乱码. 最 ...

  6. c# 读取txt文件并分隔

    public static List<PostPerson> GetNameByFile() { #region 读取txt文件 var file = File.Open(Environm ...

  7. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

  8. 怎样用 I/O流读取txt文件?

    java.io包提供了用来永久保存对象状态的机制,可处理各种类型的流,如文件流.字节流.字符流等,还提供实现可串行化Serializable接口.可处理对象流. Java语言提供3种自动生成的标准流. ...

  9. python3 读取txt文件数据,绘制趋势图,matplotlib模块

    python3 读取txt文件数据,绘制趋势图 test1.txt内容如下: 时间/min cpu使用率/% 内存使用率/% 01/12-17:06 0.01 7.61 01/12-17:07 0.0 ...

随机推荐

  1. STS - 配置Tomcat 运行路径

    背景 今天在一台新机器上面安装开发环境,下载完code以后在STS上配置Tomcat,发现启动以后无法读取到配置文件...启动失败! 七月 , :: 上午 org.apache.catalina.co ...

  2. 第七章 HTTP流量管理(一) gateway

    Gateway: istio的一种资源类型,Istio Gateway告诉k8s的istio-ingressgateway pods可以打开哪些主机和端口(如下的80是 ingressgateway ...

  3. ALSA声卡16_编写ALSA声卡应用程序_学习笔记

    1.体验 (1)ALSA声卡使用体验:使用arecord录音,使用aplay播放,在Alsa-utils里面) 准备: cd linux-3.4.2 patch -p1 < ../linux-3 ...

  4. 视频编解码---x264用于编码,ffmpeg用于解码

    项目要用到视频编解码,最近半个月都在搞,说实话真是走了很多弯路,浪费了很多时间.将自己的最终成果记录于此,期望会给其他人提供些许帮助. 参考教程: http://ffmpeg.org/trac/ffm ...

  5. Whoops, looks like something went wrong

    Whoops, looks like something went wrong. 这是由于访问laravel项目报错的,解决几种可能出现的错误. 1)打开:D:\java\wamp\www\subwa ...

  6. 21_java之File对象和递归遍历

    01IO技术概述 * A:IO技术概述 * a: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 * b: Input * 把持久设备上的数据读取到内存中的这 ...

  7. Mellanox infinoband RDMA SDP

    IPoIB Internet Protocol over InfiniBand 就是指利用物理IB网络(IB卡,线缆,交换机,更甚者IB3层交换)通过ip协议进行连接,并进行数据传输! SDP Soc ...

  8. Myeclipse报错:“Versions of Spring facet could not be detected”的解决方法

    解决方法如下: VERSION OF SPRING FACET COULD NOT BE DETECTED. The migration process needs to detect the cor ...

  9. 使用ConfigFilter

    ConfigFilter的作用包括: 从配置文件中读取配置 从远程http文件中读取配置 为数据库密码提供加密功能 1 配置ConfigFilter 1.1 配置文件从本地文件系统中读取 <be ...

  10. win10 wsl安装 命令行

    用于一些精简版没有商店的安装方法 开启"Windows Subsystem for Linux" 可选特性 打开`PowerShell`,运行下面指令: Enable-Window ...