我正在以流的形式阅读文件: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;
}
我接受Stream
使用StreamReader
将其读入字符串,然后删除额外的回车符并将其写回Stream
。
我的代码看起来不错或者我应该做些不同的事情吗?
答案 0 :(得分:2)
怎么样:
string final = string.Join("", File.ReadLines(path));
?这逐行读取,然后在没有任何分隔符的情况下重新组合。
答案 1 :(得分:2)
查看示例文本后,以下内容将删除您的单个'r'实例:
string text = File.ReadAllText(FilePath);
text = text.Replace("\r\r", "\r");
File.WriteAllText(FilePath + ".modified", text);
答案 2 :(得分:0)
Replace Line Breaks in a String C#
上面有答案。您可以将文件读入字符串,然后删除换行符。