基于新行在C#中读取文件

时间:2014-03-24 13:53:05

标签: c# .net csv file-io console-application

我在C#中有一个文件,其中包含这样的关键字,每个都出现在新行

1234-hello I am here
121-Where are you

我想阅读该文件并将1234-Hello 121-Where写入另一个文件,我在互联网上发现很多代码基于逗号分隔,但无法找到代码来提取值新线的基础。

-分隔我要提取的数字和关键字,例如1234-hello

2 个答案:

答案 0 :(得分:4)

您可以使用:

string[] lines = File.ReadAllLines(path);
for(int i = 0; i < lines.Length; i++)
{
    string line = lines[i];
    string[] tokens = line.Split(new char[]{'-', ' '});
    int number = int.Parse(tokens[0]);
    string text = tokens[1];
    lines[i] = number + "-" + text;
}

File.WriteAllLines(path2, lines);

您可能想要添加一些错误处理

  • 检查是否有任何行返回
  • 检查tokens.Length&gt; = 2

答案 1 :(得分:2)

首先通过 white-space 读取所有行,Split每行,获取第一部分并将内容写入新文件:

var lines = File.ReadLines("path").Select(x => x.Split().First());

File.WriteAllLines("otherPath", lines);

此代码应生成如下输出:

1234-Hello
121-Where