首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StreamReader和TextReader

StreamReader和TextReader
EN

Stack Overflow用户
提问于 2012-05-12 19:27:00
回答 1查看 6K关注 0票数 4

我正在尝试使用StreamReader读取pbx文件,编辑内容,并使用c#中的TextReader将内容显示到新文件中。

这是我在c#中的第一个开发任务。

我在大学学习过java,我的新工作使用的是c#。

基本上,我必须从电话系统中读取pbx文件中包含的记录列表。然而,这些记录有一行良好的呼叫记录,后跟一行带有一些不可靠的字符,然后是另一行良好的记录。

我的任务是逐行读取这个文件,然后编写一段代码来忽略带有不可靠字符的行,并将正确的记录输出到我的c:\驱动器上的一个新文件中,我将其命名为output.txt。

我可以编写while循环来删除不可靠的字符,但是我不确定从我的c驱动器上的pbx文件中读取c#代码,然后将编辑后的内容输出到一个名为output.txt的新文件中,该文件也在我的c驱动器上。

我是c#的新手,已经在谷歌上探索了几个小时。只是需要一点指导,我要走了。

EN

回答 1

Stack Overflow用户

发布于 2012-05-12 20:14:51

您没有提到文件编码,所以我在这里坚持使用UTF-8默认值。

一种选择是循环的“常规”方法,它读取、检查和有条件地写入,如下所示:

代码语言:javascript
复制
var inputFilePath  = @"C:\temp\input.txt";
var outputFilePath = @"C:\temp\output.txt";

using (var reader = File.OpenText(inputFilePath))
using (var writer = File.CreateText(outputFilePath))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        var isValidLine = CheckLine(line);
        if (isValidLine)
        {
            writer.WriteLine(line);
        }
    }
}

由于您标记了这个VS2008,我猜这意味着您只能使用.NET 3.5,但在4.0或更高版本中,您可以读写枚举数,然后利用它(在.NET 3.5中,您必须将所有行读取到内存中,进行过滤,然后写入所有行)。

代码语言:javascript
复制
var inputFilePath  = @"C:\temp\input.txt";
var outputFilePath = @"C:\temp\output.txt";

var inputLines = File.ReadLines(inputFilePath);

var linesToWrite = inputLines
    .Where(line => IsLineValid(line));

File.WriteAllLines(outputFilePath, linesToWrite);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10563300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档