我以流的形式读取文件:Stream fin = File.OpenRead(FilePath);
是否有任何方法,我将如何能够找到并删除所有回车从该文件流?
编辑:目标是删除单个回车符r
,并保留带有换行符"rn"
的回车符。
示例文件:
The key backed up in this file is:r
rn
pub 2048R/65079BB4 2011-08-01r
rn
Key fingerprint = 2342334234r
rn
uid testr
rn
sub 2048R/0B917D1C 2011-08-01r
结果应该是这样的:
The key backed up in this file is:
rn
pub 2048R/65079BB4 2011-08-01
rn
Key fingerprint = 2342334234
rn
uid test
rn
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("rr", "r");
byte[] array = Encoding.ASCII.GetBytes(final);
MemoryStream stream = new MemoryStream(array);
return stream;
}
我在Stream
中使用StreamReader
将其读入字符串,然后删除额外的回车并将其写回Stream
。我的代码看起来正常吗?或者我应该做一些不同的事情吗?
查看示例文本后,下面将删除单个'r'实例:
string text = File.ReadAllText(FilePath);
text = text.Replace("rr", "r");
File.WriteAllText(FilePath + ".modified", text);
如何:
string final = string.Join("", File.ReadLines(path));
?它逐行读取,然后重新组合,不需要任何分隔符。
替换字符串中的换行符c#
上面有答案。您可以将文件读入字符串,然后删除换行符。