gpt4 book ai didi

c# - StreamReader 和 TextReader

转载 作者:太空狗 更新时间:2023-10-30 01:08:05 28 4
gpt4 key购买 nike

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

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

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

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

我的任务是逐行阅读这个文件,然后编写一段代码来忽略带有狡猾字符的行,并将好的记录输出到我的 c:\驱动器上的一个新文件中,我称之为 output.txt。

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

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

最佳答案

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

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

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 中你必须将所有行读入内存,过滤,然后写入所有行。

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);

关于c# - StreamReader 和 TextReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563300/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com