C#从流中删除额外的回车

C#从流中删除额外的回车,c#,stream,C#,Stream,Im以流的形式读取文件:stream fin=file.OpenRead(FilePath) 是否有任何方法可以找到并删除该文件流中的所有回车符 编辑:目标是删除单个回车符\r,保留换行符“\r\n”不变的回车符 示例文件: The key backed up in this file is:\r \r\n pub 2048R/65079BB4 2011-08-01\r \r\n Key fingerprint = 2342334234\r \r\n uid

Im以流的形式读取文件:
stream fin=file.OpenRead(FilePath)
是否有任何方法可以找到并删除该文件流中的所有回车符

编辑:目标是删除单个回车符
\r
,保留换行符
“\r\n”
不变的回车符

示例文件:

The key backed up in this file is:\r
\r\n
pub   2048R/65079BB4 2011-08-01\r
\r\n
      Key fingerprint = 2342334234\r
\r\n
uid                  test\r
\r\n
sub   2048R/0B917D1C 2011-08-01\r
结果应该是这样的:

The key backed up in this file is:
\r\n
pub   2048R/65079BB4 2011-08-01
\r\n
      Key fingerprint = 2342334234
\r\n
uid                  test
\r\n
sub   2048R/0B917D1C 2011-08-01
EDIT2:最终解决方案工作原理如下:

    static private Stream RemoveExtraCarriageReturns(Stream streamIn)
    {
        StreamReader reader = new StreamReader(streamIn);
        string key = reader.ReadToEnd();
        string final = key.Replace("\r\r", "\r");
        byte[] array = Encoding.ASCII.GetBytes(final);
        MemoryStream stream = new MemoryStream(array);
        return stream;
    }
我接收
使用
StreamReader
将其读入字符串,然后删除额外的回车符并将其写回
。 我的代码看起来正常还是应该做些不同的事情?

以上就是答案。您可以将文件读入字符串,然后删除换行符。

如何:

string final = string.Join("", File.ReadLines(path));

??这将逐行读取,然后在没有任何分隔符的情况下重新组合。

查看示例文本后,以下内容将删除单个“r”实例:

string text = File.ReadAllText(FilePath);

text = text.Replace("\r\r", "\r");

File.WriteAllText(FilePath + ".modified", text);

我想他想直接从流中删除它们,但是的,最好是在读取到流中之后删除它们。是的,将文件读入字符串是我最后的选择。只是想知道流中是否有正确的方法。这可能不是问题,但是如果给定字符串
“\r\r”
,结果仍然是
“\r\r”
。您必须一遍又一遍地进行替换,直到得到替换时使用的字符串。@aL3891同意,但从示例文本中不会出现这种情况。看起来不错,不过您可能应该在API整洁性方法中将返回流的位置设置为零。小文件的好解决方案。